Elixir - ประเภทข้อมูล

สำหรับการใช้ภาษาใด ๆ คุณต้องเข้าใจประเภทข้อมูลพื้นฐานที่ภาษารองรับ ในบทนี้เราจะพูดถึงประเภทข้อมูลพื้นฐาน 7 ประเภทที่สนับสนุนโดยภาษา Elixir ได้แก่ จำนวนเต็มโฟลตบูลีนอะตอมสตริงลิสต์และทูเพิล

ประเภทตัวเลข

Elixir เช่นเดียวกับภาษาโปรแกรมอื่น ๆ รองรับทั้งจำนวนเต็มและจำนวนลอย หากคุณเปิดเปลือก elixir ของคุณและป้อนจำนวนเต็มหรือลอยเป็นอินพุตมันจะคืนค่า ตัวอย่างเช่น,

42

เมื่อรันโปรแกรมข้างต้นจะให้ผลลัพธ์ดังนี้ -

42

คุณยังสามารถกำหนดตัวเลขเป็นฐานแปดฐานสิบหกและฐานสองได้

ฐานแปด

ในการกำหนดตัวเลขในฐานแปดให้นำหน้าด้วย '0o' ตัวอย่างเช่น 0o52 ในฐานแปดจะเท่ากับ 42 ในฐานสิบ

เลขฐานสิบหก

ในการกำหนดตัวเลขในฐานทศนิยมให้นำหน้าด้วย '0x' ตัวอย่างเช่น 0xF1 ในฐานสิบหกเทียบเท่ากับ 241 ในฐานสิบ

ไบนารี่

ในการกำหนดตัวเลขในฐานสองให้นำหน้าด้วย '0b' ตัวอย่างเช่น 0b1101 ในไบนารีเทียบเท่ากับ 13 ในฐานสิบ

Elixir รองรับความแม่นยำสองเท่า 64 บิตสำหรับตัวเลขทศนิยม และยังสามารถกำหนดได้โดยใช้รูปแบบการยกกำลัง ตัวอย่างเช่น 10145230000 สามารถเขียนเป็น 1.014523e10

อะตอม

อะตอมคือค่าคงที่ซึ่งมีชื่อเป็นค่าของมัน สามารถสร้างได้โดยใช้สัญลักษณ์สี (:) ตัวอย่างเช่น,

:hello

บูลีน

รองรับ Elixir true และ falseเป็นบูลีน ค่าทั้งสองนี้แนบมากับอะตอมจริงและ: เท็จตามลำดับ

สตริง

สตริงใน Elixir ถูกแทรกระหว่างเครื่องหมายคำพูดคู่และมีการเข้ารหัสเป็น UTF-8 สามารถขยายได้หลายบรรทัดและมีการแก้ไข ในการกำหนดสตริงเพียงแค่ใส่ในเครื่องหมายคำพูดคู่ -

"Hello world"

ในการกำหนดสตริงหลายบรรทัดเราใช้ไวยากรณ์ที่คล้ายกับ python ที่มีเครื่องหมายคำพูดคู่สามคำ -

"""
Hello
World!
"""

เราจะเรียนรู้เกี่ยวกับสตริงไบนารีและรายการอักขระ (คล้ายกับสตริง) ในเชิงลึกในบทสตริง

ไบนารี

ไบนารีคือลำดับของไบต์ที่อยู่ใน << >> คั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น,

<< 65, 68, 75>>

ไบนารีส่วนใหญ่จะใช้เพื่อจัดการข้อมูลที่เกี่ยวข้องกับบิตและไบต์หากคุณมี โดยค่าเริ่มต้นสามารถจัดเก็บ 0 ถึง 255 ในแต่ละค่าได้ ขีด จำกัด ขนาดนี้สามารถเพิ่มได้โดยใช้ฟังก์ชันขนาดที่ระบุว่าควรใช้กี่บิตในการจัดเก็บค่านั้น ตัวอย่างเช่น,

<<65, 255, 289::size(15)>>

รายการ

Elixir ใช้วงเล็บเหลี่ยมเพื่อระบุรายการค่า ค่าสามารถเป็นประเภทใดก็ได้ ตัวอย่างเช่น,

[1, "Hello", :an_atom, true]

รายการมาพร้อมกับฟังก์ชัน inbuilt สำหรับส่วนหัวและส่วนท้ายของรายการที่ชื่อ hd และ tl ซึ่งจะส่งคืนส่วนหัวและส่วนท้ายของรายการตามลำดับ บางครั้งเมื่อคุณสร้างรายการระบบจะส่งคืนรายการถ่าน เนื่องจากเมื่อ elixir เห็นรายการอักขระ ASCII ที่พิมพ์ได้ก็จะพิมพ์เป็นรายการถ่าน โปรดทราบว่าสตริงและรายการอักขระไม่เท่ากัน เราจะพูดถึงรายการต่อไปในบทต่อ ๆ ไป

ทูเปิล

Elixir ใช้วงเล็บปีกกาเพื่อกำหนดสิ่งที่เพิ่มขึ้น เช่นเดียวกับรายการ tuples สามารถเก็บค่าใดก็ได้

{ 1, "Hello", :an_atom, true

มีคำถามเกิดขึ้นที่นี่ - ทำไมต้องระบุทั้งสองอย่าง lists และ tuplesเมื่อทั้งคู่ทำงานในลักษณะเดียวกัน? พวกเขามีการใช้งานที่แตกต่างกัน

  • รายการถูกจัดเก็บเป็นรายการที่เชื่อมโยงกันดังนั้นการแทรกการลบจึงทำได้รวดเร็วมากในรายการ

  • ในทางกลับกัน Tuples จะถูกเก็บไว้ในบล็อกหน่วยความจำที่ต่อเนื่องกันซึ่งทำให้เข้าถึงได้เร็วขึ้น แต่จะเพิ่มค่าใช้จ่ายเพิ่มเติมในการแทรกและลบ