রুবিতে একটি ত্রিনারি অপারেটর কি?
একটি টারনারি অপারেটর তিনটি অংশ দিয়ে তৈরি, যেখান থেকে "টারনারি" শব্দটি এসেছে। এই অংশগুলিতে একটি শর্তাধীন বিবৃতি অন্তর্ভুক্ত &দুটি সম্ভাব্য ফলাফল .
অন্য কথায়, একটি টারনারি আপনাকে কোডের একটি লাইনে একটি কমপ্যাক্ট if/else এক্সপ্রেশন লেখার একটি উপায় দেয়৷
উদাহরণস্বরূপ :
যদি apple_stock> 1 :eat_appleelse :buy_appleend
এটি হয়ে উঠতে পারে :
apple_stock> 1? :eat_apple ::buy_apple
তিরনারি অপারেটরকে ধন্যবাদ!
প্রশ্ন…
এটি কিভাবে কাজ করে, ঠিক এবং সঠিক সিনট্যাক্স কি?
চলুন জেনে নেওয়া যাক।
আপনার নিজের টার্নারি লেখার জন্য একটি টেমপ্লেট
যদি আমরা একটি ত্রিদেশীয় অপারেটরের জন্য সিনট্যাক্সকে সাধারণীকরণ করি তাহলে আপনি "শূন্যস্থান পূরণ করুন" ধরনের টেমপ্লেট পাবেন।
এটা এরকম দেখাচ্ছে :
<পূর্ব> শর্ত? সত্য:মিথ্যাএকটি টার্নারি অপারেটরের প্রথম অংশ হল শর্ত , শর্ত হিসাবে আপনি এটি সত্য কিনা তা পরীক্ষা করতে চান।
এর পরে, আমাদের কাছে একটি প্রশ্ন চিহ্ন রয়েছে (?
)।
এটি সিনট্যাক্সের অংশ!
এভাবেই রুবি জানে যে আপনি একজন ত্রিনারি অপারেটর লিখছেন।
পরবর্তী :
শর্তটি true
হলে আপনি যে কোডটি চালাতে চান তা আমাদের কাছে রয়েছে , প্রথম সম্ভাব্য ফলাফল .
তারপর একটি কোলন (:
), আরেকটি সিনট্যাক্স উপাদান .
পরিশেষে, শর্তটি false
হলে আপনি যে কোডটি চালাতে চান তা আমাদের কাছে আছে , দ্বিতীয় সম্ভাব্য ফলাফল .
উদাহরণ :
"চকলেট" সাইজ> 4? "চারটির বেশি অক্ষর" :"চারটি অক্ষরের কম"
- কন্ডিশন =>
"chocolate".size > 4
- যদি সত্য =>
"More than four characters"
- অন্যথা =>
"Less than four characters"
এই তিনটি অংশ হল প্রতিটি ত্রিদেশীয় অভিব্যক্তির উপাদান।
আপনার ?
ভুলে যাবেন না শর্ত এবং সম্ভাব্য ফলাফলের মধ্যে, এমনকি যদি পদ্ধতির নাম একটি প্রশ্ন চিহ্ন দিয়ে শেষ হয়।
উদাহরণ :
"। খালি? ? "হ্যাঁ" :"না"
এটি উপেক্ষা করা সহজ, তাই এই ধরনের কোড লেখার সময় মনোযোগ দিন।
জটিল টারনারি অপারেটর
টারনারি অপারেটর ভুলভাবে ব্যবহার করা যেতে পারে।
যখনই আপনি এটির সাথে জটিল কিছু করতে চান তখন এটি একটি খারাপ ধারণা হয়ে উঠতে শুরু করে৷
উদাহরণস্বরূপ :
আপনি একটি ভেরিয়েবলের জন্য একটি ত্রিদেশীয় অভিব্যক্তির ফলাফল নির্ধারণ করতে পারেন।
a =10> 5? "হ্যাঁ" :"না"
এটা ঠিক আছে।
কিন্তু এটি আরও জটিল হতে শুরু করে যখন আপনার সম্ভাব্য ফলাফলে ফাঁকা থাকে।
এখানে একটি উদাহরণ আছে :
<প্রে>10> 5? ("হ্যাঁ" রাখে) :("না" রাখে)আমাদের এখানে বন্ধনী ব্যবহার করতে হবে।
কেন?
কারণ যদি আপনি না করেন তবে আপনি একটি SyntaxError
পাবেন .
এই বন্ধনীগুলি এই কোডটিকে বুঝতে একটু কঠিন করে তোলে , যা পঠনযোগ্যতা থেকে দূরে নিয়ে যায় এবং টারনারি ব্যবহারের শৈলী সুবিধা।
একটি টারনারি ব্যবহার বা না করার সময় এটি মনে রাখবেন।
টার্নারি অপারেটর এবং অপারেটর অগ্রাধিকার
আর একটি সমস্যা যা ত্রিবিধ অভিব্যক্তির সাথে আসে তা হল অপারেটর অগ্রাধিকার।
এখানে একটি উদাহরণ আছে :
[]. { |a| ট্যাপ করুন৷ a <<"cccc"। আকার ==0? "খালি" :"খালি নয়" }# [৫]
আমি হয় "empty"
আশা করব অথবা "not empty"
, আমাদের টারনারির জন্য দুটি সম্ভাব্য ফলাফল, কিন্তু আমরা 5
পেয়েছি পরিবর্তে।
কি হচ্ছে?
দেখা যাচ্ছে যে রুবি এবং বেশিরভাগ প্রোগ্রামিং ভাষা বিভিন্ন স্তরের অগ্রাধিকার সহ অভিব্যক্তি প্রক্রিয়া করে।
এটি সহজ পাটিগণিতেও ঘটে!
আপনি জানেন, যোগ ও বিয়োগের আগে গুণের মূল্যায়ন করা হয়।
একইভাবে, রুবিতে, একটি পদ্ধতি কল (<<
&size
) একটি টারনারি অপারেটরের উপর অগ্রাধিকার নেয়, যা শেষ উদাহরণে আচরণ ব্যাখ্যা করে।
আপনি বন্ধনী দিয়ে এটি সমাধান করতে পারেন :
[]. { |a| ট্যাপ করুন৷ a <<("bbbbb.size ==0 ? "empty" :"not empty") }# ["not empty"]
আপনার টারনারি অপারেটর লেখার সময় আরেকটি বিষয় মাথায় রাখতে হবে!
ভিডিও টিউটোরিয়াল
সারাংশ
আপনি রুবিতে টার্নারি কন্ডিশনাল অপারেটর সম্পর্কে শিখেছেন, এই অপারেটর আপনাকে কম্প্যাক্ট কন্ডিশনাল স্টেটমেন্ট লিখতে দেয় যা পরিস্থিতির উপর নির্ভর করে আপনার কোড পড়া সহজ বা কঠিন করে তুলতে পারে।
এবার তোমার পালা! আপনি যা শিখেছেন তা অনুশীলন করুন যাতে আপনি এই জ্ঞান আপনার মস্তিষ্কে স্থাপন করতে পারেন।
পড়ার জন্য ধন্যবাদ 🙂