ال

الثنائيات في Elixir

7 تمارين

نبذة عن الثنائيات

  • النوع الثنائي هو حالة خاصة من النوع سلسلة البتات.
  • تتكوّن القيم الثنائية من البايتات.
    • يتكوّن البايت من 8 بتات.
    • يمكن للبايت أن يمثّل أعدادًا تتراوح من 0 إلى 255
    • القيم العددية الست عشرية شائعة عند التعامل مع البايتات: من 0x00 إلى 0xFF.
  • تُعرَّف القيم الثنائية الحرفية باستخدام الصيغة الخاصة <<>>.
  • يمكن استخدام <>/2 لدمج سلاسل البتات والقيم الثنائية والسلاسل النصية.
<<255>> == <<0xFF>>
# Overflowing bits are truncated
<<256>> == <<0>>
<<256::size(16)>> == <<1, 0>>

<<"Hello">> == <<72, 101, 108, 108, 111>>

الـ البايت الفارغ اسم آخر لـ <<0>>.

السلاسل النصية بيانات ثنائية مُرمَّزة

# This string has a string length of 5, but is made up of 7 bytes
string = "cześć"
String.length(string) != byte_size(string)

# Even emoji strings are encoded binaries
"👍" == <<240, 159, 145, 141>>

مطابقة الأنماط على البيانات الثنائية

# Ignore the first 8 bytes, bind the remaining variable sized binary to `body`
<<_::binary-size(8), body::binary>>

يمكن فعل ذلك أيضًا مع السلاسل النصية:

# bind the first 5 bytes to `name`,
# match the string literal " the ",
# bind remaining bytes to `species`
<<name::binary-size(5), " the ", species::binary>> = <<"Frank the Walrus">>
{name, species}
# => {"Frank", "Walrus"}
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم الثنائيات

التدريب مقفل

افتح 1 تمرين إضافي لممارسة الثنائيات