package main
import (
"fmt"
"math/cmplx"
"math"
)
// 包内变量
var (
aa = 5
bb = true
ss = "go"
)
var mm, dd = 6, 7
func variableZeroValue() {
var a int
var s string
fmt.Println(a, s)
fmt.Printf("%d %q\n", a, s)
}
func variableInitialValue() {
var a, b int = 3, 4
var s string = "hello"
fmt.Println(a, b, s)
}
// 类型推断
func variableTypeDeduction() {
// 编译器自动决定类型
var a, b, c, s = 3, 4, true, "world"
fmt.Println(a, b, c, s)
}
// 简洁定义变量
func variableShorter() {
// 使用 := 定义变量 只能在函数内部使用
a, b, c, s := 3, 4, true, "world"
b = 5
fmt.Println(a, b, c, s)
}
// 内建变量类型
func euler() {
c := 3 + 4i
fmt.Println(cmplx.Abs(c))
// 欧拉公式
fmt.Println(cmplx.Pow(math.E, 1i * math.Pi) + 1)
fmt.Println(cmplx.Exp(1i * math.Pi) + 1)
fmt.Printf("%.3f\n", cmplx.Exp(1i * math.Pi) + 1)
}
// 强制类型转换
func triangle() {
var a, b int = 3, 4
var c int
c = int(math.Sqrt(float64(a * a + b * b)))
fmt.Println(c)
}
// 变量类型写在变量名之后
// 编译器可推测变量类型
// 没有char 只有rune
// 原生支持复数类型
func main() {
fmt.Println("hello world")
variableZeroValue()
variableInitialValue()
variableTypeDeduction()
variableShorter()
fmt.Println(aa, bb, ss, mm, dd)
euler()
triangle()
}
网友评论