Exit
#
// အခြေအနေ (status) တစ်ခုနဲ့ ချက်ချင်းထွက်ဖို့ `os.Exit` ကို သုံးပါ။
package main
import (
"fmt"
"os"
)
func main() {
// `defer` တွေကို `os.Exit` သုံးတဲ့အခါ run မှာ မဟုတ်ပါဘူး၊ ဒါကြောင့်
// ဒီ `fmt.Println` ကို ဘယ်တော့မှ ခေါ်မှာ မဟုတ်ပါဘူး။
defer fmt.Println("!")
// အခြေအနေ(status) 3 နဲ့ ထွက်ပါ။
os.Exit(3)
}
// C စတဲ့ အခြားဘာသာစကားတွေနဲ့ မတူဘဲ၊ Go က `main` ကနေ integer တန်ဖိုး
// ပြန်ပေးတာကို exit status အဖြစ် မသုံးပါဘူး။ သင်က သုည မဟုတ်တဲ့
// အခြေအနေ(status)နဲ့ ထွက်ချင်ရင် `os.Exit` ကို သုံးသင့်ပါတယ်။
# သင်က `exit.go` ကို `go run` နဲ့ run ရင်၊ exit က
# `go` က ဖမ်းယူပြီး ပုံနှိပ်ဖော်ပြပေးပါလိမ့်မယ်။
$ go run exit.go
exit status 3
# Binary ကို build လုပ်ပြီး run ခြင်းဖြင့် သင်က
# terminal ထဲမှာ status ကို မြင်နိုင်ပါတယ်။
$ go build exit.go
$ ./exit
$ echo $?
3
# မှတ်ချက်။ ကျွန်ုပ်တို့ program ထဲက `!`
# က ဘယ်တော့မှ ပုံနှိပ် (print) မထွက်လာပါ။