AnyCompiler

Variables aur Types

Go mein ek variable declare karne ke do tareeqe hain: var name Type = value type ko explicitly spell out karta hai, jabke name := value compiler ko value se type infer karne deta hai — := functions ke andar kahin zyada aam 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 karein bina kisi initial value ke, aur Go use uninitialized nahi chhorta — har type ka apna ek zero value hota hai jisse woh khud ba khud 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 bare mein strict hai: ek variable jo aap declare karte hain par kabhi istemal nahi karte, woh ek build error hai, sirf ek warning nahi. Yeh waqai 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 nahi chalta — koi output nahi, bas error. Go ka compiler isko jaan bujh kar enforce karta hai: ek unused variable almost hamesha ek ghalati hoti hai (refactoring se bacha hua, ek typo'd naam), isliye compiler tab tak build karne se mana kar deta hai jab tak use theek 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 karein. Dono ko sath mein fmt.Println(price, inStock) se print karein.