Elixir - Tipe Data
Untuk menggunakan bahasa apa pun, Anda perlu memahami tipe data dasar yang didukung bahasa tersebut. Pada bab ini, kita akan membahas 7 tipe data dasar yang didukung oleh bahasa elixir: integer, float, Boolean, atom, string, list dan tuple.
Jenis Numerik
Elixir, seperti bahasa pemrograman lainnya, mendukung integer dan float. Jika Anda membuka shell elixir Anda dan memasukkan integer atau float apa pun sebagai input, itu akan mengembalikan nilainya. Sebagai contoh,
42
Ketika program di atas dijalankan, menghasilkan hasil sebagai berikut -
42
Anda juga dapat menentukan angka dalam basis oktal, heksadesimal, dan biner.
Oktal
Untuk menentukan bilangan dalam basis oktal, awali dengan '0o'. Misalnya, 0o52 dalam oktal sama dengan 42 dalam desimal.
Heksadesimal
Untuk menentukan angka dalam basis desimal, awali dengan '0x'. Misalnya, 0xF1 dalam hex setara dengan 241 dalam desimal.
Biner
Untuk menentukan angka dalam basis biner, awali dengan '0b'. Misalnya, 0b1101 dalam biner sama dengan 13 dalam desimal.
Elixir mendukung presisi ganda 64bit untuk angka floating point. Dan mereka juga dapat didefinisikan menggunakan gaya eksponensiasi. Misalnya, 10145230000 dapat ditulis sebagai 1.014523e10
Atom
Atom adalah konstanta yang namanya adalah nilainya. Mereka dapat dibuat menggunakan simbol color (:). Sebagai contoh,
:hello
Boolean
Elixir mendukung true dan falsesebagai Boolean. Kedua nilai ini sebenarnya melekat pada atom: true dan: false.
String
String di Elixir disisipkan di antara tanda kutip ganda, dan dienkode dalam UTF-8. Mereka dapat menjangkau banyak baris dan berisi interpolasi. Untuk menentukan string cukup masukkan dalam tanda kutip ganda -
"Hello world"
Untuk mendefinisikan string multiline, kami menggunakan sintaks yang mirip dengan python dengan tanda kutip ganda rangkap tiga -
"""
Hello
World!
"""
Kita akan belajar tentang string, binari, dan daftar karakter (mirip dengan string) secara mendalam di bab string.
Binari
Binari adalah urutan byte yang diapit oleh << >> dipisahkan dengan koma. Sebagai contoh,
<< 65, 68, 75>>
Binari sebagian besar digunakan untuk menangani data terkait bit dan byte, jika Anda punya. Mereka dapat, secara default, menyimpan 0 hingga 255 di setiap nilai. Batas ukuran ini dapat ditingkatkan dengan menggunakan fungsi ukuran yang menyatakan berapa banyak bit yang diperlukan untuk menyimpan nilai tersebut. Sebagai contoh,
<<65, 255, 289::size(15)>>
Daftar
Elixir menggunakan tanda kurung siku untuk menentukan daftar nilai. Nilai bisa dalam bentuk apa pun. Sebagai contoh,
[1, "Hello", :an_atom, true]
Daftar datang dengan fungsi bawaan untuk kepala dan ekor dari daftar bernama hd dan tl yang mengembalikan kepala dan ekor daftar masing-masing. Kadang-kadang ketika Anda membuat daftar, itu akan mengembalikan daftar karakter. Ini karena ketika elixir melihat daftar karakter ASCII yang dapat dicetak, elixir mencetaknya sebagai daftar karakter. Harap dicatat bahwa string dan daftar karakter tidak sama. Kami akan membahas daftar lebih lanjut di bab-bab selanjutnya.
Tuple
Elixir menggunakan tanda kurung kurawal untuk mendefinisikan tupel. Seperti daftar, tupel dapat memiliki nilai apa pun.
{ 1, "Hello", :an_atom, true
Sebuah pertanyaan muncul di sini, - mengapa menyediakan keduanya lists dan tuplesketika keduanya bekerja dengan cara yang sama? Baik mereka memiliki implementasi yang berbeda.
Daftar sebenarnya disimpan sebagai daftar tertaut, jadi penyisipan, penghapusan sangat cepat dalam daftar.
Tupel di sisi lain, disimpan dalam blok memori yang berdekatan, yang membuat aksesnya lebih cepat tetapi menambah biaya tambahan pada penyisipan dan penghapusan.