ماڈیول اسباق (3/5)
Constants اور iota
Constants غیر متغیر اقدار ہیں جو مرتب وقت پر معلوم ہوتی ہیں۔ گو میں وہ ہیں۔
const کے ساتھ اعلان کیا اور typed یا untyped کیا جا سکتا ہے۔ غیر ٹائپ شدہ ہیں a
سپر پاور: وہ آپ کو بچاتے ہوئے سیاق و سباق کے مطابق مطلوبہ قسم کو اپناتے ہیں۔
واضح تبادلوں کو لکھنے سے۔
بنیادی نحو
const PI = 3.14
const MaxRetry int = 5
const Name = "eLearner"MaxRetry ٹائپ کیا گیا ہے (int): آپ اسے صرف ایک int کو تفویض کر سکتے ہیں۔
PI اور Name غیر ٹائپ شدہ ہیں: وہ "لفظی" کی طرح برتاؤ کرتے ہیں اور موافقت کرتے ہیں
سیاق و سباق
const PI = 3.14
var f float32 = PI // ok: PI è non tipata, diventa float32
var d float64 = PI // okconst بلاکس
آپ ایک بلاک میں کئی مستقل گروپ بنا سکتے ہیں:
const (
StateInitial = "INIT"
StateReady = "READY"
StateError = "ERROR"
)iota: گنتی کاؤنٹر
ایک const بلاک کے اندر، خصوصی شناخت کنندہ iota 0 سے شروع ہوتا ہے
اور ہر لائن پر 1 کا اضافہ۔ یہ شمار کرنے کا محاورہ ہے:
const (
Monday = iota // 0
Tuesday // 1
Wednesday // 2
Thursday // 3
Friday // 4
)اس کے بعد کی لائنیں اظہار کی وارث ہوتی ہیں اگر وہ فراہم نہیں کرتی ہیں۔
اس لیے Tuesday لکھنا = iota کو دہرائے بغیر کافی ہے۔
اظہار کے ساتھ پیٹرن
iota صوابدیدی اظہار کے اندر ظاہر ہو سکتا ہے:
const (
KB = 1 << (10 * (iota + 1)) // 1 << 10 = 1024
MB // 1 << 20
GB // 1 << 30
TB // 1 << 40
)ایک قدر کو چھوڑنا
اگر آپ کسی لائن کو کوئی قدر تفویض نہیں کرنا چاہتے ہیں (کیونکہ آپ iota کو
ویسے بھی اضافہ کریں)، خالی شناخت کنندہ استعمال کریں _:
const (
_ = iota // scarta 0
KB // 1
MB // 2
)آپ کی باری
پیکیج کی سطح پر قیمت 3.14 کے ساتھ ایک مستقل PI کا اعلان کریں، پھر اسے مین کے اندر پرنٹ کریں۔
اشارہ دکھائیں۔
`const PI = 3.14` پیکیج کی سطح پر جاتا ہے، مین سے باہر۔
3 کوششوں کے بعد حل دستیاب ہے۔
iota کا استعمال کرتے ہوئے 1 سے نمبر والے ہفتے کے دنوں (پیر، منگل، بدھ) کے ساتھ ایک کانسٹ بلاک کی وضاحت کریں۔
اشارہ دکھائیں۔
بلاک کی پہلی لائن پر `iota + 1` استعمال کریں۔ بعد کی لائنیں اظہار کی وارث ہوتی ہیں۔
3 کوششوں کے بعد حل دستیاب ہے۔
یہ پروگرام کیا پرنٹ کرتا ہے؟
const (
A = iota * 2
B
C
)
fmt.Println(A, B, C)Recap
constغیر متغیر اقدار کے لیے جو مرتب وقت پر معلوم ہوتی ہیں۔- غیر ٹائپ شدہ مستقل سیاق و سباق کے مطابق ہوتے ہیں: کسی تبدیلی کی ضرورت نہیں۔
const ( ... )گروپ سے متعلق اقدار کو روکتا ہے۔iotaہر بلاک میں 0 سے شروع ہوتا ہے اور لائن میں اضافہ ہوتا ہے۔- پیٹرنز: enum (
= iota)، بٹ ماسک (= 1 << iota)، یونٹس (= 1 << (10*iota))۔