Elixir - Veri Türleri
Herhangi bir dili kullanmak için, dilin desteklediği temel veri türlerini anlamanız gerekir. Bu bölümde, iksir dili tarafından desteklenen 7 temel veri türünü tartışacağız: tamsayılar, kayan değerler, Booleanlar, atomlar, dizeler, listeler ve tuplelar.
Sayısal Türler
Elixir, diğer herhangi bir programlama dili gibi, hem tam sayıları hem de kayan sayıları destekler. İksir kabuğunuzu açarsanız ve girdi olarak herhangi bir tamsayı veya kayar sayı girerseniz, değerini döndürür. Örneğin,
42
Yukarıdaki program çalıştırıldığında, aşağıdaki sonucu verir -
42
Sayıları sekizlik, onaltılık ve ikili tabanda da tanımlayabilirsiniz.
Sekizli
Sekizlik tabanda bir sayının önüne '0o' koyun. Örneğin, sekizlik tabanda 0o52, onluk tabanda 42'ye eşittir.
Onaltılık
Bir sayıyı ondalık tabanda tanımlamak için, önüne "0x" koyun. Örneğin, onaltılık sayıdaki 0xF1, ondalık sayı olarak 241'e eşittir.
İkili
İkili tabanda bir sayının önüne '0b' koyun. Örneğin, ikilik tabanda 0b1101, ondalık tabanda 13'e eşdeğerdir.
Elixir, kayan nokta sayıları için 64bit çift hassasiyeti destekler. Ayrıca bir üs alma stili kullanılarak da tanımlanabilirler. Örneğin 10145230000, 1.014523e10 olarak yazılabilir.
Atomlar
Atomlar, adı değerleri olan sabitlerdir. Renk (:) sembolü kullanılarak oluşturulabilirler. Örneğin,
:hello
Boole'lar
Elixir destekler true ve falseBooleans olarak. Bu değerlerin ikisi de aslında atomlara bağlıdır: sırasıyla doğru ve: yanlış.
Teller
Elixir'deki dizeler çift tırnak arasına eklenir ve UTF-8 ile kodlanır. Birden çok satıra yayılabilirler ve enterpolasyonlar içerebilirler. Bir dizeyi tanımlamak için çift tırnak içinde girmeniz yeterlidir -
"Hello world"
Çok satırlı dizeleri tanımlamak için, üçlü çift tırnaklı python'a benzer bir sözdizimi kullanıyoruz -
"""
Hello
World!
"""
Dizeler bölümünde, dizgiler, ikili dosyalar ve karakter listeleri (dizelere benzer) hakkında derinlemesine bilgi edineceğiz.
İkili dosyalar
İkili dosyalar, << >> içine alınmış ve virgülle ayrılmış bayt dizileridir. Örneğin,
<< 65, 68, 75>>
Eğer varsa, ikili dosyalar çoğunlukla bit ve bayt ile ilgili verileri işlemek için kullanılır. Varsayılan olarak, her bir değerde 0 ila 255 saklayabilirler. Bu boyut sınırı, bu değeri depolamak için kaç bit gerektiğini söyleyen boyut işlevi kullanılarak artırılabilir. Örneğin,
<<65, 255, 289::size(15)>>
Listeler
Elixir, bir değer listesi belirtmek için köşeli parantez kullanır. Değerler herhangi bir türde olabilir. Örneğin,
[1, "Hello", :an_atom, true]
Listeler, sırasıyla listenin başını ve kuyruğunu döndüren hd ve tl adlı listenin baş ve kuyruğu için dahili işlevlerle birlikte gelir. Bazen bir liste oluşturduğunuzda, bir karakter listesi döndürür. Bunun nedeni, iksir yazdırılabilir ASCII karakterlerinin bir listesini gördüğünde, onu bir karakter listesi olarak yazdırmasıdır. Lütfen dizelerin ve karakter listelerinin eşit olmadığını unutmayın. Listeleri daha sonraki bölümlerde tartışacağız.
Tuples
Elixir, tupleları tanımlamak için küme parantezleri kullanır. Listeler gibi, tuplelar da herhangi bir değeri tutabilir.
{ 1, "Hello", :an_atom, true
Burada bir soru ortaya çıkıyor - neden ikisini de lists ve tuplesikisi de aynı şekilde çalıştığında? Farklı uygulamaları var.
Listeler aslında bağlantılı listeler olarak saklanır, bu nedenle listelerde eklemeler, silmeler çok hızlıdır.
Öte yandan, kayıtlar bitişik bellek bloğunda saklanır, bu da bunlara erişimi daha hızlı hale getirir, ancak ekleme ve silme işlemleri için ek bir maliyet ekler.