meaning কিভাবে Elixir মধ্যে স্ট্রিং যোগদান?




elixir meaning in bengali (7)

আমি কিভাবে একটি স্থান সহ একটি তালিকা দুটি স্ট্রিং যোগদান করবেন, যেমন:

["StringA", "StringB"]

হয়ে

"StringA StringB"

আপনি যদি আপনার তালিকায় একটি স্থান যোগ করার সাথে ঠিক থাকতেন তবে আপনি এটি একটি আইওলিস্ট হিসাবে আচরণ করতে পারেন:

["StringA", " ", "StringB"] |> IO.iodata_to_binary # "StringA StringB"

আপনি মেমরির স্ট্রিংগুলির কোনও সদৃশ না করলে এটি আপনাকে কিছু পারফরম্যান্সকে সমর্থন করে।


আপনার কাছে যদি কোনও ইচ্ছাকৃত তালিকা থাকে তবে আপনি Enum.join ব্যবহার করতে পারেন, তবে যদি এটি কেবল দুই বা তিনটির জন্য হয় তবে স্পষ্ট স্ট্রিং কনক্যাটেনেশনটি পড়তে সহজ হওয়া উচিত

"StringA" <> " " <> "StringB"

যাইহোক, আপনি যদি এটির মাধ্যমে নেটওয়ার্কের মাধ্যমে আউটপুট করতে যাচ্ছেন তবে প্রায়ই আপনাকে মেমরির একটি স্ট্রিং হিসাবে এটির প্রয়োজন হবে না। এই ক্ষেত্রে, একটি আইওলিস্ট (একটি নির্দিষ্ট তালিকাটির একটি নির্দিষ্ট টাইপ) ব্যবহার করার জন্য এটি উপকারী হতে পারে, যা আপনাকে অনুলিপি করা ডেটা থেকে সংরক্ষণ করে। উদাহরণ স্বরূপ,

iex(1)> IO.puts(["StringA", " ", "StringB"])
StringA StringB
:ok

যেহেতু আপনি কোথাও ভেরিয়েবলের মতো সেই স্ট্রিংগুলি একটি গভীর তালিকা ব্যবহার করে, আপনি এটি অন্য কোথাও আউটপুট করার জন্য একটি সম্পূর্ণ নতুন স্ট্রিং বরাদ্দ করা এড়াতে পারবেন। ইলিক্স / ইर्लং-এর অনেকগুলি ফাংশন আইওলিস্টকে বোঝে, তাই আপনাকে প্রায়ই অতিরিক্ত কাজ করতে হবে না।


আপনি 'string A' ++ ' ' ++ 'string B' করতে পারেন 'string A' ++ ' ' ++ 'string B'


সম্পূর্ণতা জন্য উত্তর, আপনি স্ট্রিং interpolation ব্যবহার করতে পারেন:

iex(1)> [a, b] = ["StringA", "StringB"]
iex(2)> "#{a} #{b}"
"StringA StringB"

এটা আপনি কি করার চেষ্টা করছেন উপর নির্ভর করে। আপনি যদি শুধুমাত্র একটি নতুন পরিবর্তনশীলকে লেখার চেষ্টা করছেন, তবে কেবল এটি ব্যবহার করুন:

  • স্ট্রিং interpolation

    a = "StringA"
    b = "StringB"
    "#{a} #{b}"
    
  • স্ট্রিং কনক্যাটেন্টেশন: "StringA" <> " " <> "StringB

  • Enum.join() : ["StringA", "StringB"] |> Enum.join(" ")

যাইহোক, যেমন উরি উল্লেখ করেছেন, আইওলিস্টগুলিও ব্যবহার করা যেতে পারে:

["StringA", " ", "StringB"] |> IO.iodata_to_binary

আপনি সম্পদ খরচ সম্পর্কে যত্ন প্রয়োজন হলে IOLists আসলে সবচেয়ে অভিনয়কারী হতে যাচ্ছে। বিগ নেরড র্যাঞ্চের কর্মক্ষমতা লাভ w / IOLists উপর একটি ভাল লেখা আপ আছে।


একটি আইও তালিকা ব্যবহার করে বিবেচনা করুন, যদি আপনার ["স্ট্রিং 1", "স্ট্রিং 2"] থাকে এবং আপনি এটিতে iolist_to_binary / 1 ব্যবহার করেন তবে আপনি সেই স্ট্রিংগুলিকে একটি নতুন স্ট্রিংয়ে অনুলিপি করতে পারবেন। যদি আপনার আইওও তালিকা থাকে তবে আপনি কেবল এটি বেশিরভাগ ক্ষেত্রেই আউটপুট করতে পারেন এবং এটি পোর্টে এটি সংহত করে। এবং এটিই মূল বিষয়, রানটাইমটিকে ডেটা কপি করতে হবে না যাতে এটি কনক্যাটেনেশনের চেয়ে অনেক বেশি কার্যকর।


আপনি শুধু কিছু ইচ্ছাকৃত তালিকা যোগ দিতে চান:

"StringA" <> " " <> "StringB"

বা শুধু স্ট্রিং interpolation ব্যবহার করুন:

 "#{a} #{b}"

আপনার তালিকা আকার ইচ্ছাকৃতভাবে হয়:

Enum.join(["StringA", "StringB"], " ")

... উপরের সব সমাধান ফিরে আসবে

"StringA StringB"




elixir