Ternary অপারেটর কি এবং কিভাবে কাজ করে?

Ternary এবং Elvis অপারেটর - স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (Spring Expression Language) - Java Technologies

407

Ternary অপারেটর কী?

Ternary অপারেটর (বা Conditional অপারেটর) একটি শর্তযুক্ত এক্সপ্রেশন যা দুটি ভিন্ন মানের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়। এটি একটি if-else স্টেটমেন্টের সংক্ষিপ্ত রূপ এবং সাধারণত তিনটি অংশ নিয়ে গঠিত: একটি শর্ত, সত্য হলে একটি মান, এবং মিথ্যা হলে অন্য একটি মান।

স্প্রিং এক্সপ্রেশন ল্যাঙ্গুয়েজ (SpEL) তে Ternary অপারেটর একটি শর্তের উপর ভিত্তি করে দুটি মানের মধ্যে একটি নির্বাচন করে এবং এটি ? : চিহ্নের মাধ্যমে প্রকাশ করা হয়।

Ternary অপারেটর এর গঠন

condition ? value_if_true : value_if_false
  • condition: এটি একটি বুলিয়ান এক্সপ্রেশন (যেমন true বা false) যা যাচাই করা হয়।
  • value_if_true: যদি শর্তটি সত্য (true) হয়, তাহলে এই মানটি রিটার্ন করা হয়।
  • value_if_false: যদি শর্তটি মিথ্যা (false) হয়, তাহলে এই মানটি রিটার্ন করা হয়।

SpEL তে Ternary অপারেটর কিভাবে কাজ করে?

SpEL তে Ternary অপারেটর ব্যবহার করে আপনি এক্সপ্রেশনগুলির উপর শর্ত পরীক্ষা করতে পারেন এবং সেগুলির ভিত্তিতে মান নির্বাচন করতে পারেন। এটি খুবই সহজ এবং কার্যকরীভাবে if-else লজিক তৈরি করতে সহায়ক।

উদাহরণ ১: সাধারণ Ternary অপারেটর

#{10 > 5 ? 'Greater than 5' : 'Less than or equal to 5'}

এখানে, 10 > 5 শর্তটি যাচাই করা হচ্ছে। শর্তটি সত্য (true), তাই 'Greater than 5' রিটার্ন হবে।

ব্যাখ্যা:

  • condition: 10 > 5
  • value_if_true: 'Greater than 5'
  • value_if_false: 'Less than or equal to 5'

উদাহরণ ২: স্প্রিং কনফিগারেশন ফাইলে SpEL তে Ternary অপারেটর

স্প্রিং কনফিগারেশন ফাইলে SpEL ব্যবহার করে Ternary অপারেটর ব্যবহার করা যেতে পারে।

<bean id="greetingService" class="com.example.GreetingService">
    <property name="message" value="#{systemProperties['os.name'].contains('Windows') ? 'Hello Windows User!' : 'Hello Unix User!'}"/>
</bean>

ব্যাখ্যা:

  • condition: systemProperties['os.name'].contains('Windows')
  • value_if_true: 'Hello Windows User!'
  • value_if_false: 'Hello Unix User!'

এখানে, os.name সিস্টেম প্রপার্টি চেক করা হচ্ছে। যদি এটি 'Windows' ধারণ করে, তাহলে 'Hello Windows User!' রিটার্ন হবে, অন্যথায় 'Hello Unix User!' রিটার্ন হবে।


উদাহরণ ৩: ব্যবহারকারী ইনপুটের উপর ভিত্তি করে Ternary অপারেটর

#{user.age >= 18 ? 'Adult' : 'Minor'}

এখানে, user.age >= 18 শর্তটি যাচাই করা হচ্ছে। যদি ব্যবহারকারীর বয়স ১৮ বা তার বেশি হয়, তাহলে 'Adult' রিটার্ন হবে, অন্যথায় 'Minor' রিটার্ন হবে।

ব্যাখ্যা:

  • condition: user.age >= 18
  • value_if_true: 'Adult'
  • value_if_false: 'Minor'

SpEL তে Ternary অপারেটরের কিছু গুরুত্বপূর্ণ ব্যবহার

  1. সংখ্যার উপর ভিত্তি করে শর্ত:

    #{age > 18 ? 'Eligible' : 'Not Eligible'}
    

    এখানে, age > 18 শর্তটি যাচাই করা হচ্ছে এবং শর্তের ভিত্তিতে 'Eligible' অথবা 'Not Eligible' রিটার্ন হবে।

  2. বুলিয়ান শর্ত:

    #{true ? 'Yes' : 'No'}
    

    এটি 'Yes' রিটার্ন করবে, কারণ শর্তটি সত্য।

  3. স্ট্রিং ম্যানিপুলেশন:

    #{'apple'.equals('orange') ? 'Matched' : 'Not Matched'}
    

    এখানে, 'apple' এবং 'orange' স্ট্রিং তুলনা করা হচ্ছে। শর্তটি মিথ্যা হওয়ায় 'Not Matched' রিটার্ন হবে।


SpEL তে Ternary অপারেটর ব্যবহার করার সুবিধা

  1. সংক্ষিপ্ততা: SpEL এর Ternary অপারেটর কোডকে সংক্ষিপ্ত এবং সহজ করে তোলে। এটি if-else স্টেটমেন্টের একটি সংক্ষিপ্ত রূপ।
  2. ডাইনামিক কনফিগারেশন: SpEL এর Ternary অপারেটর ব্যবহার করে স্প্রিং কনফিগারেশন ফাইলে শর্তানুযায়ী বিভিন্ন মান নির্ধারণ করা যায়।
  3. পারফরম্যান্স: এক্সপ্রেশন দ্রুত এবং কার্যকরভাবে প্রক্রিয়া করা সম্ভব, যা কোডে লজিক্যাল অপারেশন সহজ করে।

সারাংশ

Ternary অপারেটর SpEL এর একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা শর্তের উপর ভিত্তি করে দুটি ভিন্ন মানের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়। এটি condition ? value_if_true : value_if_false ফরম্যাটে কাজ করে এবং স্প্রিং কনফিগারেশন ফাইল বা কোডে শর্তানুযায়ী ডাইনামিকভাবে মান নির্ধারণ করতে সহায়ক। SpEL তে Ternary অপারেটর ব্যবহারের মাধ্যমে কোড আরও পরিষ্কার, সংক্ষিপ্ত এবং কার্যকরী করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...