মূল কন্টেন্টে যান
মডিউল 1 · 4-এর পাঠ 5কোর্সে 4/50~8 min
মডিউল পাঠ (4/5)

অপারেটর

Go-তে ক্লাসিক অপারেটর রয়েছে যা আপনি আশা করতে পারেন, কিছু চমক সহ: পাটিগণিত, তুলনা, যৌক্তিক, বিটওয়াইজ। কোন ত্রিদেশীয় অপারেটর (a ? b : c), কোনো ওভারলোডিং নেই, প্রকারের মধ্যে কোনো অন্তর্নিহিত রূপান্তর নেই৷ সরলতা একটি বৈশিষ্ট্য।

পাটিগণিত

Go
a, b := 10, 3
fmt.Println(a + b)  // 13
fmt.Println(a - b)  // 7
fmt.Println(a * b)  // 30
fmt.Println(a / b)  // 3   ← divisione INTERA tra interi
fmt.Println(a % b)  // 1   ← resto (modulo)

বৃদ্ধি এবং হ্রাস STATEMENTS, অভিব্যক্তি নয়

x++ এবং x-- একটি মান তৈরি করে না: তারা "ক্রিয়া" এবং কিছুই নয় আরো সি-তে y := x++ লাইক নেই।

Go
x := 5
x++          // ok: incrementa x
// y := x++  // ERRORE di compilazione
fmt.Println(x) // 6

তুলনা

== != < <= > >= ফেরত bool। তারা সংখ্যা এবং স্ট্রিং প্রযোজ্য; জন্য structs সমস্ত ক্ষেত্র তুলনীয় হতে হবে (কোনও স্লাইস/মানচিত্র ভিতরে নেই)।

Go
"abc" == "abc"  // true
"abc" < "abd"   // true (ordine lessicografico)
3 != 4           // true

শর্ট সার্কিট সঙ্গে যৌক্তিক

&&, ||, !। তারা বাম থেকে ডানে শর্ট সার্কিট: যদি প্রথম অপারেন্ড ফলাফল নির্ধারণ করার জন্য যথেষ্ট, দ্বিতীয়টি এমনকি নয় মূল্যায়ন

Go
adult := age >= 18
seniorAdult := age >= 18 && age < 65

বিটওয়াইজ

& এবং, | বা, ^ XOR, << বাম শিফট, >> ডান শিফট, __AGYTOK_INLINE_20 না (একটু পরিষ্কার)। তারা পতাকা, বাইনারি পার্সিং এবং জন্য দরকারী অপ্টিমাইজেশন:

Go
flags := uint8(0b0000_0011)
flags |= 0b0000_0100   // imposta un bit:    0000_0111
flags &^= 0b0000_0010  // cancella un bit:   0000_0101
hasFlag := flags & 0b0000_0100 != 0  // true

কোন অন্তর্নিহিত রূপান্তর

Go কম্পাইল-এ 1 + 1.5, কারণ দুটিই টাইপ না করা আক্ষরিক। কিন্তু var i int = 1; i + 1.5 না করে: আপনার প্রয়োজন float64(i) + 1.5।

Go
i := 1
f := 1.5
// i + f          // ERRORE
float64(i) + f    // 2.5

তোমার পালা

ব্যায়াম#go.m1.l4.e1
প্রচেষ্টা: 0লোড হচ্ছে...

17 কে 5 দ্বারা ভাগ করার অবশিষ্টাংশ গণনা করুন এবং এটি মুদ্রণ করুন। প্রত্যাশিত: 2।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

মডুলো অপারেটর হল `%`।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম#go.m1.l4.e2
প্রচেষ্টা: 0লোড হচ্ছে...

বয়স 18 থেকে 65 এর মধ্যে হলে সত্য প্রিন্ট করুন, অন্যথায় মিথ্যা।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

`&&` এর সাথে দুটি তুলনা একত্রিত করুন।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

Quiz#go.m1.l4.e3
প্রস্তুত

এই কোড প্রিন্ট কি?

Go
a, b := 7, 2
fmt.Println(a/b, a%b)
উত্তরের বিকল্প

রিক্যাপ

  • ক্লাসিক পাটিগণিত; / ints-এর মধ্যে পূর্ণসংখ্যা বিভাজন (ছাঁটা)।
  • ++ এবং -- হল বিবৃতি, এক্সপ্রেশন নয়: না y := x++।
  • তুলনা এবং যৌক্তিক অপারেটর bool উত্পাদন করে; &&/|| শর্ট সার্কিট।
  • পতাকা এবং বাইনারি পার্সিংয়ের জন্য Bitwise & | ^ << >> &^।
  • বিভিন্ন প্রকারের মধ্যে কোন অন্তর্নিহিত রূপান্তর নেই: type(x) ব্যবহার করুন।