AnyCompiler

Functions

Ek Go function directly ek se zyada value wapas kar sakta hai — unhe pehle kisi tuple ya object mein wrap kiye baghair. Isko Go ki standard library mein hamesha istemal kiya jaata hai, sab se zyada ek result ko ek error ke sath wapas karne ke liye.

package main

import "fmt"

func divide(a, b int) (int, int) {
	return a / b, a % b
}

func main() {
	quotient, remainder := divide(17, 5)
	fmt.Println(quotient, remainder)
}
Output
3 2

Practice mein multiple return values

Kyunke multiple return values khud language mein built-in hain, neeche jaisa ek function minMax ek hi call mein ek slice ka sab se chhota aur sab se bara number dono wapas kar sakta hai, aur caller bas := se dono ko unpack kar leta hai.

package main

import "fmt"

func minMax(numbers []int) (int, int) {
	min, max := numbers[0], numbers[0]
	for _, n := range numbers {
		if n < min {
			min = n
		}
		if n > max {
			max = n
		}
	}
	return min, max
}

func main() {
	low, high := minMax([]int{4, 8, 15, 16, 23, 42})
	fmt.Println(low, high)
}
Output
4 42

Aage: control flow — if/else, aur Go ka single loop keyword.

Practice exercise

Ek function multiply(a, b int) int likhein jo a * b wapas kare, phir multiply(6, 7) print karein.