Go 中只有 for
循环
package main
import "fmt"
func main() {
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum)
}
Go 中只有 for
循环,将 for
当 while
使用
package main
import "fmt"
func main() {
sum := 1
for sum < 1000 {
sum += sum
}
fmt.Println(sum)
}
func main() {
for {
// ....
// for 中省略所有语句
}
}
package main
import (
"fmt"
"math"
)
func sqrt(x float64) string {
if x < 0 { // 不需要小括号
return sqrt(-x) + "i"
}
return fmt.Sprint(math.Sqrt(x))
}
func main() {
fmt.Println(sqrt(2), sqrt(-4))
}
func main() {
fmt.Print("Go runs on ")
switch os := runtime.GOOS; os {
case "darwin": // 1.
fmt.Println("OS X.") // 2.
case "linux":
fmt.Println("Linux.")
default:
// freebsd, openbsd,
// plan9, windows...
fmt.Printf("%s.", os)
}
}
case
值不需要为常量,可以为多种类型break
语句,只会匹配一个,除非使用 fallthrough
func main() {
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("Good morning!")
case t.Hour() < 17:
fmt.Println("Good afternoon.")
default:
fmt.Println("Good evening.")
}
}
if-then-else
结构的判断,代码更清晰func main() {
defer fmt.Println("world")
fmt.Println("hello")
}
// output:
// hello
// world