অপারেটরগুলির মধ্যে পার্থক্য কী =
এবং :=
তাদের ব্যবহারের ক্ষেত্রে কী কী? তারা উভয়ই কোনও কার্যভারের জন্য বলে মনে হচ্ছে?
x := uint32(123)
উদাহরণস্বরূপ। এটি বেশিরভাগ মানুষের কাছে অবশ্যই স্পষ্ট হওয়া উচিত তবে আমাকে কয়েক মিনিট ভাবতে হয়েছিল ;-)
অপারেটরগুলির মধ্যে পার্থক্য কী =
এবং :=
তাদের ব্যবহারের ক্ষেত্রে কী কী? তারা উভয়ই কোনও কার্যভারের জন্য বলে মনে হচ্ছে?
x := uint32(123)
উদাহরণস্বরূপ। এটি বেশিরভাগ মানুষের কাছে অবশ্যই স্পষ্ট হওয়া উচিত তবে আমাকে কয়েক মিনিট ভাবতে হয়েছিল ;-)
উত্তর:
কেবলমাত্র =
অ্যাসাইনমেন্ট অপারেটর।
:=
শর্ট ভেরিয়েবল ডিক্লেয়ারেশন ক্লজের সিনট্যাক্সের একটি অংশ ।
Some যদিও কিছু বিধি আছে। দেখুন এই অন্য উত্তর আরো বিস্তারিত জানার জন্য।
:=
এখানে অপারেটর হিসাবে তালিকাভুক্ত হয়েছে golang.org/ref/spec# অপারেটর_আর_পঞ্চাঙ্কন , সুতরাং আমি নিশ্চিত যে আমি " :=
আসলেই অপারেটর নন " এর সাথে সম্মত নই
গো-তে, :=
ঘোষণা + অ্যাসাইনমেন্টের জন্য, তবে =
কেবলমাত্র অ্যাসাইনমেন্টের জন্য।
উদাহরণস্বরূপ, var foo int = 10
হিসাবে একই foo := 10
।
=
বিপরীতে কোনও ব্যবহারের মামলা রয়েছে কি :=
? আপনি কি সবসময় ব্যবহার করা উচিত :=
?
:=
এমন একটি ভেরিয়েবল বরাদ্দ করতে দেবে না যা ইতিমধ্যে ঘোষিত হয়েছে, যদি না আপনি একবারে একাধিক ভেরিয়েবলকে অর্পণ করেন এবং এর মধ্যে কমপক্ষে একটি ভেরিয়েবল নতুন।
int
প্রয়োজন নেই, var foo = 10
একই হিসাবেfoo := 10
অন্যরা :=
যেমন ইতিমধ্যে ব্যাখ্যা করেছে, ঘোষণা, কার্যনির্বাহী এবং পুনঃ ঘোষণার জন্য উভয়ই; এবং এটি ভেরিয়েবলের ধরণটি স্বয়ংক্রিয়ভাবে অনুমান করে ( ইনফার্স করে )।
উদাহরণস্বরূপ, foo := 32
এর একটি স্বল্প হাত ফর্ম:
var foo int
foo = 32
// OR:
var foo int = 32
// OR:
var foo = 32
/ * কিছু নিয়ম রয়েছে: * /
★ প্রথম বিধি:
আপনি এর :=
বাইরে ব্যবহার করতে পারবেন না funcs
। এটি কারণ, কোনও মজাদার বাইরে, একটি বিবৃতি একটি কীওয়ার্ড দিয়ে শুরু করা উচিত।
// no keywords below, illegal.
illegal := 42
// `var` keyword makes this statement legal.
var legal = 42
func foo() {
alsoLegal := 42
// reason: it's in a func scope.
}
★ দ্বিতীয় বিধি:
আপনি এগুলি দু'বার ব্যবহার করতে পারবেন না ( একই ক্ষেত্রের মধ্যে ):
legal := 42
legal := 42 // <-- error
কারণ, "একটি নতুন ভেরিয়েবল":=
প্রবর্তন করে, সুতরাং এটির দু'বার ব্যবহার করা দ্বিতীয় ভেরিয়েবলটিকে পুনরায় বিবরণ দেয় না, সুতরাং এটি অবৈধ।
★ তৃতীয় বিধি:
আপনি এগুলি বহু-পরিবর্তনশীল ঘোষণা এবং কার্যভারের জন্য ব্যবহার করতে পারেন:
foo, bar := 42, 314
jazz, bazz := 22, 7
Th চতুর্থ বিধি (পুনঃনির্মাণ):
আপনি এগুলি দুটি "বহু-ভেরিয়েবল" ঘোষণায় ব্যবহার করতে পারেন , যদি ভেরিয়েবলগুলির মধ্যে একটি নতুন হয় :
foo, bar := someFunc()
foo, jazz := someFunc() // <-- jazz is new
baz, foo := someFunc() // <-- baz is new
এটি বৈধ, কারণ, আপনি সমস্ত ভেরিয়েবলের ঘোষণা দিচ্ছেন না, আপনি কেবল বিদ্যমান ভেরিয়েবলগুলিতে নতুন মানগুলি পুনরায় অর্পণ করছেন এবং একই সাথে নতুন ভেরিয়েবলগুলি ঘোষণা করছেন। একে রিডিক্লারেশন বলা হয় ।
★ 5 তম বিধি:
আপনি নতুন স্কোপে ভেরিয়েবল ঘোষণার জন্য সংক্ষিপ্ত ঘোষণাটি ব্যবহার করতে পারেন এমনকি ভেরিয়েবলটি ইতিমধ্যে একই নামের সাথে আগেই ঘোষিত হয়েছে:
var foo int = 34
func some() {
// because foo here is scoped to some func
foo := 42 // <-- legal
foo = 314 // <-- legal
}
এখানে, foo := 42
আইনগত, কারণ, এটা ঘোষণা করা হয় foo
এ some()
func এর সুযোগ। foo = 314
আইনী, কারণ এটি কেবলমাত্র একটি নতুন মান নির্ধারণ করে foo
।
★ ষষ্ঠ বিধি:
আপনি সংক্ষিপ্ত বিবৃতি ব্লকগুলিতে একই নামটি ঘোষণা করতে পারেন: যদি , জন্য , স্যুইচ করুন :
foo := 42
if foo := someFunc(); foo == 314 {
// foo is scoped to 314 here
// ...
}
// foo is still 42 here
কারণ, foo
ইন if foo := ...
, কেবলমাত্র সেই if
ধারাটির অন্তর্ভুক্ত এবং এটি একটি অন্য ক্ষেত্রের মধ্যে।
সুতরাং, একটি সাধারণ নিয়ম হিসাবে: আপনি যদি সহজেই কোনও ভেরিয়েবলটি ঘোষণা করতে চান তবে আপনি ব্যবহার করতে পারেন
:=
বা আপনি যদি কেবল বিদ্যমান ভেরিয়েবলটি ওভাররাইট করতে চান তবে আপনি ব্যবহার করতে পারেন=
।
তথ্যসূত্র:
:=
ঘোষণার জন্য একটি স্বল্প হাত।
a := 10
b := "gopher"
a
একটি স্ট্রিং হিসাবে ঘোষিত হবে int
এবং মান দিয়ে আরম্ভ হবে 10
যেখানে মান হিসাবে একটি হিসাবে ঘোষণা করা হবে এবং প্রাথমিক করা b
হবে gopher
।
তাদের সমতুল্য ব্যবহার করা =
হবে
var a = 10
var b = "gopher"
=
এসাইনমেন্ট অপারেটর। আপনি অন্য যে কোনও ভাষায় এটি ব্যবহার করুন ঠিক একইভাবে এটি ব্যবহার করা হয়।
আপনি যখন ভেরিয়েবল ঘোষণা করেন এবং প্রারম্ভকালীন উপস্থিত থাকে তখন আপনি প্রকারটি বাদ দিতে পারেন ( http://tour.golang.org/#11 )।
=
কেবল তুলনার জন্য এবং :=
কার্যনির্বাহের জন্য ...
: = এর অর্থ ঘোষনা করা এবং নির্ধারিত করা = = এর অর্থ সহজভাবে অর্পণ করা।
রেফারেন্স ডক থেকে: ( ট্যুর.আলংআরগ.org )
একটি ফাংশনের অভ্যন্তরে , :=
সংক্ষিপ্ত অ্যাসাইনমেন্ট স্টেটমেন্টটি অন্তর্ভুক্ত প্রকারের সাথে কোনও ভ্যারো ডিক্লেয়ারেশনের জায়গায় ব্যবহার করা যেতে পারে।
একটি ফাংশনের বাইরে , প্রতিটি নির্মাণ একটি কীওয়ার্ড (var, func, এবং আরও) দিয়ে শুরু হয় এবং: = নির্মাণ উপলভ্য নয়।
": =" একই সাথে ঘোষণা এবং সূচনা করার জন্য ব্যবহার করুন, নিম্নলিখিতটি একটি উদাহরণ।
"=" এর ব্যবহার
var i int
i = 10
https://play.golang.org/p/RU88ty_SGa
": =" এর ব্যবহার
i: = 10
উভয়ই গো ভাষায় পরিবর্তনশীল ঘোষণার বিভিন্ন কৌশল।
var firstName = "John" // is a variable declaration
এবং
firstName := "John" // is a short variable declaration.
একটি সংক্ষিপ্ত ভেরিয়েবল ডিক্লেয়ারেশন হ'ল প্রারম্ভিক প্রকাশের সাথে নিয়মিত পরিবর্তনশীল ঘোষণার জন্য একটি শর্টহ্যান্ড তবে কোনও প্রকার নয়।
বিস্তারিত জানার জন্য নীচে পড়ুন: