প্রোগ্রামিংয়ের এক হালি কমন কনফিউশন


Heading দেখে হয়ত অনেকে বুঝে গেছেন আমি আজ কি নিয়ে কথা বলব । আর যারা বুঝেন নাই তাদের ও নিরাশ হবার কিছু নেই । অনলাইনে বিভিন্ন বড় বড় Developer দের লিখনি পড়ে বুঝতে পারলাম  আমরা যারা কম্পিউটার প্রোগ্রমিং করি তারা চাকরির জন্য যখন ইন্টারভিউ দেই , ইন্টারভিউয়াররা কিন্তু আমাদের খুব জটিল কিনবা বড় কোন প্রোগ্রাম লিখতে দেন না , তারা খুবই বেসিক লেবেলের কিছু প্রভলেম এবং প্রশ্ন করে থাকেন ।আর সেই তথ্যরে উপর ভিক্তি করে নিজেকে প্রস্তুত  করতে গিয়ে আমি কিছু কনসেপ্ট  নিয়ে কনফিউশনে পড়ি । আজ সেগুলো নিয়ে আলোচনা করব …

নাম্বার এক:  Parameter vs Argument

Parameter হল  মেথডের / ফাংশনের মধ্যে ভ্যারিয়্যাবল কে Declearation. অন্যদিকে Argument  হলো ঐ ভ্যারিয়্যাবেলের  actual value যেটি মেথড / ফাংশনের কল কারার সময় মেথড / ফাংশনের ভিতর পাস করা হয় । কি!! এখনো বুঝেন নাই ?  আসুন উদাহরন দেখে  ধারনাটা পরিপূর্ন করি
int add(int x, int y) {
    return x + y;
}
int result = add(123, 456);
উপরে উদাহরন থেকে  add মেথডের ভিতর  int x  এবং  int y হল  Parameter এবং ঐ  add মেথডকে যখন  কল করে int result  নামক ভ্যারিয়্যাবলে রাখা হয় তখন x  এবং  y  এর প্রকৃত ভেলু 123 এবং 456 পাস করা হয় , আর  এই ভেলু দুইটি হল  Argument .

নাম্বার দুই:  Mehtod vs Function
এক কথায় বলেতে গেলে উপরের  add মেথড / ফাংশনটিকে  যদি কোন  Class   এর ভিতর লিখা হয় তাহলে সেটিকে আমরা Mehtod বলব আর যদি  class এর বাহিরে লিখা  হয় তাহলে আমরা সেটিকে Function বলব । বিষয়টি নিয়ে পরিষ্কার ধারনার জন্য আর কিছু র্পাথক্য জেনে নেই…
Function  কে আমরা  Object oriented or Non- object oriented Programming  প্রয়োগ করতে পারি কিন্তু  Method  কে শুধুমাত্র  Object Oriented Programming  এ প্রয়োগ করতে পারি ।
Function  এর কোন  Reference Variables  নেই অন্যদিকে  Method  কে Reference Variable দ্বারা কল করা হয় ।
একটি উদাহরন দেখা যাক …
void main() {
//This is referred to as a  function
int add(int x, int y) {
    return x + y;
}
int result = add(10, 20);
print(result);
var methodCallResult = new MyMethod().add(10,20);
print(methodCallResult);
}
class MyMethod{
//This is referred to as a method
 int add(int x, int y) {
    return x + y;
}
}

নাম্বার তিন :  কল ব্যাক ফাংশন কী?

এক কথায় কল ব্যাক ফাংশন এমন একটা ফাংশন যেটা আরেকটা ফাংশন এক্সিকিউট হওয়ার পর এক্সিকিউট হয়। আর এজন্যেই এটার নাম কলব্যাক ফাংশন।  এখানে ফাংশনও অবজেক্ট। আর একটা ফাংশনকে আরেকটা ফাংশন রিটার্ণ করতে পারে আবার একই সাথে একটা ফাংশন আর্গুমেন্ট হিসেবে আরেকটা ফাংশনকেও নিতে পারে। আর যখনি এরকম একটা ফাংশন আরেকটা ফাংশনকে আর্গুমেন্ট হিসেবে নেয়, তখনি আমরা সেই আর্গুমেন্টে যাওয়া ফাংশনটাকে কলব্যাক ফাংশন বলি।
একটি উদাহরন দেখা যাক …
void main() {
  int a = 10;
  int b = 10;
  int sum = a+b;
 functionOne(sum){
   return sum;
 }
 functionTwo(x){
  print(sum);
 }
 functionTwo(functionOne);
}

নাম্বার চার: Null vs Empty String

Null String  হ''কিছুই না', পরম কিছুই নয় বলে বোঝানোর প্রোগ্রামিক পদ্ধতি।যেমন 0 কন্তিু 'কিছুই' নয়। এটি একটি পূর্ণসংখ্যা মান। একইভাবে " " (empty) 'ল খালি স্ট্রিংয়ের মান তবে 'কিছুই না' বলা যায় না। কারন এর  length  আছে.
একটি উদাহরন দেখা যাক …
void main() {
  String nullString;//declear
String nullStrings = null; //initialize

  String emptyString = " ";
  print(nullString); //Output is : null
  print(nullStrings); //Output is : null
  print(emptyString.length); //Output is : 0 ‍
}











Comments

Post a Comment

Popular posts from this blog

Business Benefits of Using Flutter Technology

অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বেসিক কনসেপ্ট

ডার্ট প্রোগ্রামিংয়ের খুবই গুরুত্বপূর্ণ ফিচার Async & Await কি? কেন?

ডার্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ দিয়ে অপ্রত্যাশিত ইভেন্ট বা ঘটনা কিভাবে হ্যান্ডেল করবেন?