مرکزی مواد پر جائیں
ماڈیول 1 · سبق 1 از 5کورس میں 1/50~10 min
ماڈیول اسباق (1/5)

متغیرات اور اقسام

گو میں ہر متغیر کی ایک سٹیٹک قسم ہوتی ہے جو کمپائلر کو معلوم ہوتی ہے: ایک بار اعلان کیا، ایک متغیر قسم کو تبدیل نہیں کر سکتا۔ یہ سختی - بہت مختلف ہے۔ JavaScript یا Python سے — وہ قیمت ہے جو آپ کمپائل ٹائم حاصل کرنے کے لیے ادا کرتے ہیں۔ رن ٹائم کی بجائے غلطیاں، چھوٹی بائنریز، اور قابل پیشن گوئی کارکردگی

اعلامیہ کی دو شکلیں۔

var واضح قسم کے ساتھ

Go
var name string = "Ada"
var age int = 36
var active bool

جب آپ قدر کو چھوڑ دیتے ہیں (جیسا کہ var active bool میں) متغیر کو موصول ہوتا ہے اس کی قسم کی صفر قدر — ہم اگلے سبق میں اس پر واپس آئیں گے۔

مختصر اعلان :=

ایک فنکشن کے اندر آپ := استعمال کر سکتے ہیں، جس سے قسم کا اندازہ ہوتا ہے دائیں طرف اظہار. یہ محاوراتی شکل ہے اور جسے آپ استعمال کریں گے۔ 90% وقت:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

بنیادی اقسام جن سے آپ ابھی ملیں گے۔

قسممثالنوٹس
int42سائز CPU (32 یا 64 بٹ) پر منحصر ہے
float643.14ڈیفالٹ برائے ڈیسیمل لٹریلز
string"Ada"UTF-8، ناقابل تغیر
booltrue, falseکوئی "سچائی" نہیں، صرف خالص بول
rune'A'int32 کا عرف، یونیکوڈ کوڈ پوائنٹ کی نمائندگی کرتا ہے
byte0x7Fuint8 کا عرف

int8/16/32/64، uint8/16/32/64، float32 اور complex64/128 بھی ہیں جب آپ کو درست سائز کی ضرورت ہو (بائنری پارسنگ، انٹراپ، وغیرہ)۔

متعدد اعلانات

آپ var-بلاک یا جمع := کے ساتھ کئی متغیرات کا اعلان کر سکتے ہیں:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

متغیرات کا اعلان کیا گیا لیکن استعمال نہیں ہوا۔

گو سخت ہے: ایک متغیر اعلان شدہ اور کبھی استعمال نہیں کیا گیا ایک تالیف ہے۔ غلطی، انتباہ نہیں۔ یہی بات غیر استعمال شدہ import پر لاگو ہوتی ہے۔

Go
func main() {
    x := 42
    // error: x declared and not used
}

اصول کو عارضی طور پر خاموش کرنے کے لیے آپ _ (خالی شناخت کنندہ):

Go
_ = x

آپ کی باری

ورزش#go.m1.l1.e1
کوششیں: 0لوڈ ہو رہا ہے…

'Ada' ویلیو کے ساتھ ٹائپ سٹرنگ کے متغیر نام کا اعلان کرنے کے لیے var کا استعمال کریں اور اسے پرنٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

لمبی شکل `var <name> <type> = <value>` ہے۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#go.m1.l1.e2
کوششیں: 0لوڈ ہو رہا ہے…

ایک لائن پر، عمر کے لیے 36 اور 'Roma' کو شہر میں تفویض کرنے کے لیے := استعمال کریں، پھر دونوں کو پرنٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

آپ ایک ساتھ متعدد متغیرات تفویض کر سکتے ہیں: `a, b := 1, "deue"`۔

3 کوششوں کے بعد حل دستیاب ہے۔

Quiz#go.m1.l1.e3
تیار

ان میں سے کون سا اعلامیہ تالیف کی خرابی پیدا کرتا ہے اگر کسی فنکشن کے باہر رکھا جائے؟

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
جواب کے اختیارات

Recap

  • جامد قسم، خود بخود := سے اندازہ لگایا گیا ہے یا var کے ساتھ اعلان کیا گیا ہے۔
  • := صرف اندر کے افعال؛ پیکیج کی سطح پر صرف var/const۔
  • غیر استعمال شدہ متغیرات اور درآمدات = تالیف کی خرابی: ان کو خاموش کرنے کے لیے _ استعمال کریں۔
  • int/float64/string/bool روزمرہ کے 90% کیسز کا احاطہ کرتا ہے۔