AnyCompiler

Variables aur Types

Go mein ek variable declare karne ke do tarike hain: var name Type = value type ko explicitly spell out karta hai, jabki name := value compiler ko value se type infer karne deta hai — := functions ke andar kahin zyada common style hai.

package main

import "fmt"

func main() {
	var age int = 30
	var price float64 = 19.99
	var isStudent bool = false
	name := "Alice"

	fmt.Println(name, age, price, isStudent)
}
Output
Alice 30 19.99 false

Zero values

Ek variable ko var se declare karo bina kisi initial value ke, aur Go use uninitialized nahi chhodta — har type ka apna ek zero value hota hai jisse woh automatically shuru hota hai: numbers ke liye 0, booleans ke liye false, strings ke liye ek empty string. Yahan undefined ya null variable jaisa kuch nahi hota jo crash karne ka intezaar kare.

package main

import "fmt"

func main() {
	var count int
	var label string
	var ready bool

	fmt.Println(count, label, ready)
}
Output
0  false

Ek real compile error kaisa dikhta hai

Go ka compiler ek khaas cheez ke baare mein strict hai: ek variable jo aap declare karte ho par kabhi use nahi karte, woh ek build error hai, sirf ek warning nahi. Yeh genuinely woh hai jo compiler report karta hai — ek real run se capture kiya gaya hai, plausible dikhne ke liye likha nahi gaya:

package main

import "fmt"

func main() {
	message := "hello"
	fmt.Println("done")
}
Output
# command-line-arguments
./main.go:6:2: message declared and not used

Kuch bhi run nahi hota — koi output nahi, bas error. Go ka compiler isko jaan bujh kar enforce karta hai: ek unused variable almost hamesha ek mistake hoti hai (refactoring se bacha hua, ek typo'd naam), isliye compiler tab tak build karne se mana kar deta hai jab tak use fix na kiya jaaye.

Aage: functions — func syntax, aur Go ke multiple return values.

Practice exercise

Ek variable price := 9.99 aur ek variable inStock := true declare karo. Dono ko saath mein fmt.Println(price, inStock) se print karo.