Elixir ডেটা টাইপস: Atom, String, Tuple, List, Map, Keyword List
Elixir একটি ফাংশনাল প্রোগ্রামিং ভাষা, এবং এতে বিভিন্ন ধরনের ডেটা টাইপস রয়েছে যা প্রোগ্রামিংয়ের জন্য অত্যন্ত গুরুত্বপূর্ণ। এখানে, আমরা Atom, String, Tuple, List, Map, এবং Keyword List ডেটা টাইপসের বৈশিষ্ট্য এবং ব্যবহার সম্পর্কে আলোচনা করব।
১. Atom
Atom একটি ডেটা টাইপ যা নির্দিষ্ট মানের (value) নাম বা পরিচয় হিসাবে ব্যবহৃত হয়। এটিকে সাধারণত স্টেট, কনফিগারেশন, বা স্পেশাল ইনফরমেশন বুঝাতে ব্যবহার করা হয়। Atoms শুধুমাত্র একটি নির্দিষ্ট মান হতে পারে এবং এটি পরিবর্তন করা যায় না।
বৈশিষ্ট্য:
- Immutable: Atom এর মান পরিবর্তন করা যায় না।
- প্রতীক হিসেবে ব্যবহৃত হয়: স্টেট, কনফিগারেশন বা স্পেশাল ইনফরমেশন বোঝানোর জন্য।
ব্যবহার:
:ok # একটি Atom, যা প্রোগ্রামে স্টেট হিসেবে ব্যবহার করা হয়
:error # অন্য একটি Atom, যা ত্রুটি নির্ধারণে ব্যবহৃত হতে পারে
:success # আরেকটি Atomউদাহরণ:
status = :ok # Atom assignment২. String
String Elixir তে একটি সিকোয়েন্স (ধারা) হিসেবে আক্ষরিক টেক্সটকে প্রতিনিধিত্ব করে। এটি সাধারণত আলফানিউমেরিক বা অন্যান্য ক্যারেক্টার ব্যবহার করে তৈরি হয়।
বৈশিষ্ট্য:
- String গুলি Unicode character সমর্থিত।
- Strings ডাবল কোটেশন
""এর মধ্যে লেখা হয়।
ব্যবহার:
name = "Elixir" # একটি String
greeting = "Hello, " <> name # Concatenationউদাহরণ:
IO.puts("Hello, Elixir!") # String output৩. Tuple
Tuple হল ডেটা টাইপের একটি গ্রুপ, যেখানে একটি নির্দিষ্ট সংখ্যা উপাদান থাকে এবং উপাদানগুলি একে অপর থেকে আলাদা থাকে। এটি স্ট্যাটিক ধরনের ডেটা স্টোরেজের জন্য ব্যবহৃত হয়।
বৈশিষ্ট্য:
- একটি Tuple নির্দিষ্ট সংখ্যক মান ধারণ করে।
- এটি একটি অবিচ্ছেদ্য (immutable) ডেটা স্ট্রাকচার।
- Tuples এর মধ্যে ডেটা অ্যাক্সেস করা হয় ইনডেক্সের মাধ্যমে।
ব্যবহার:
tuple = {:ok, "Elixir"} # Tuple with two elementsউদাহরণ:
{:ok, message} = {:ok, "Data received successfully!"}
IO.puts(message) # Output: Data received successfully!৪. List
List Elixir এ একটি অর্ডারড ডেটা সংগ্রহ যা একাধিক উপাদান ধারণ করতে পারে। এটি বিভিন্ন ডেটা টাইপের উপাদান ধারণ করতে পারে এবং এটি একটি লিনিয়ার ডেটা স্ট্রাকচার।
বৈশিষ্ট্য:
- List এলিমেন্টগুলির মধ্যে কিছু বৈচিত্র্য থাকতে পারে।
- এটি লিনিয়ার (sequential) ডেটা সংরক্ষণ করে।
- Lists এর মধ্যে ইনডেক্স ভিত্তিক অ্যাক্সেস করা হয়।
ব্যবহার:
list = [1, 2, 3, 4] # A List with integers
mixed_list = [1, "hello", :ok] # A List with mixed elementsউদাহরণ:
list = [1, 2, 3, 4]
IO.inspect(hd(list)) # Output: 1 (head of the list)
IO.inspect(tl(list)) # Output: [2, 3, 4] (tail of the list)৫. Map
Map হল একটি key-value পেয়ার ডেটা স্ট্রাকচার। এটি অত্যন্ত ইউটিলাইজড একটি ডেটা টাইপ যেখানে একটি key (কী) একটি মান (value) এর সাথে সম্পর্কিত থাকে। Maps ডাইনামিক এবং খুব সহজেই উপাদান সংযোজন বা মুছে ফেলা যায়।
বৈশিষ্ট্য:
- Map এর উপাদানগুলির মধ্যে key-value পেয়ার থাকে।
- Key গুলি ইউনিক (unique) হয়।
- এটি ডাইনামিকভাবে পরিবর্তনযোগ্য এবং একটি অত্যন্ত ফ্লেক্সিবল ডেটা স্ট্রাকচার।
ব্যবহার:
map = %{name: "Elixir", version: 1.12} # A Map with key-value pairsউদাহরণ:
map = %{name: "Elixir", version: 1.12}
IO.puts(map[:name]) # Output: Elixir৬. Keyword List
Keyword List হল একটি বিশেষ ধরনের List যা শুধুমাত্র key-value পেয়ার ধারণ করে। এটি একটি "List of tuples" যার মধ্যে প্রতিটি tuple এ দুটি উপাদান থাকে: প্রথমটি key এবং দ্বিতীয়টি value। Keyword List সাধারণত Map এর মতো, তবে এটি লিস্টের রূপে থাকে এবং এতে key গুলি পুনরাবৃত্তি হতে পারে।
বৈশিষ্ট্য:
- Keyword List লিস্টের মধ্যে key-value পেয়ার থাকে।
- keys গুলি সাধারণত atoms হয় এবং key গুলি পুনরাবৃত্তি হতে পারে।
- এটি সাধারনত কনফিগারেশন, অপশন বা নির্দিষ্ট মানের জন্য ব্যবহৃত হয়।
ব্যবহার:
keyword_list = [name: "Elixir", version: 1.12] # A Keyword Listউদাহরণ:
keyword_list = [name: "Elixir", version: 1.12]
IO.puts(keyword_list[:name]) # Output: Elixirসারসংক্ষেপ
| ডেটা টাইপ | বৈশিষ্ট্য | উদাহরণ |
|---|---|---|
| Atom | নির্দিষ্ট একটি মানের নাম বা সিম্বল | :ok, :error, :success |
| String | অক্ষর বা টেক্সটের সিকোয়েন্স | "Hello, World!" |
| Tuple | নির্দিষ্ট সংখ্যক উপাদান সহ একটি স্ট্যাটিক ডেটা স্ট্রাকচার | {:ok, "Elixir"} |
| List | একটি অর্ডারড ডেটা স্ট্রাকচার যার মধ্যে একাধিক উপাদান থাকে | [1, 2, 3, 4] |
| Map | key-value পেয়ার সমন্বিত একটি ডাইনামিক ডেটা স্ট্রাকচার | %{name: "Elixir", version: 1.12} |
| Keyword List | key-value পেয়ার সমন্বিত একটি লিস্ট যা keys গুলির পুনরাবৃত্তি থাকতে পারে | [name: "Elixir", version: 1.12] |
এই ডেটা টাইপগুলো Elixir প্রোগ্রামিংয়ে বিভিন্ন ধরনের তথ্য এবং ডেটা স্টোরেজ এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
Read more