go 基础语法(变量常量枚举)
变量定义
- 使用 var 关键词
var a, b, v bool
var s1, s2 string = "hello", "world"
- 可放在函数内,或直接放在包内
- 使用
var()
可以定义多个变量 - 编译器可以自动区分变量类型
- 使用 := 定义变量 (只能在函数内使用)
package main
import ("fmt")
aa = 2
bb = "fun"
cc = false)
func variableZeroValue() {
var s string
fmt.Printf("%d %q\n", a, s)}
func varableInitialValue() {
fmt.Println(a, b, s)}
func varableTypeDeduction() {
fmt.Println(a, b, c, s)}
func variableShorter() {
a, b, c := 2, true, "fuc"
fmt.Println(a, b, c)}
func main() {
fmt.Println("hello world!")variableZeroValue()varableInitialValue()varableTypeDeduction()variableShorter()
fmt.Println(aa, bb, cc)}
内建变量
- 内建变量类型
bool,string
(u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr
- (u: 代表无符号整数 后面数字可以规定长度,不规定长度根据系统位数来, ptr 是指针的意思,长度根据操作系统来)
byte, rune
(rune 长度32位,类似char)float32, float64, complex64, complex128
- (complex 是复数的意思 64代表实部和虚部分别是32位 128则代表分别是64位)
// 欧拉公式实现
func euler() {// c := 3 + 4i // 注: 4i 可以直接被识别为复数// fmt.Println(cmplx.Abs(c))// 方法1:
fmt.Println(cmplx.Pow(math.E, 1i*math.Pi) + 1)// 方法2:
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, 4var c int
c = int(math.Sqrt(float64(a*a + b*b)))
fmt.Println(c)
}
- 注意:浮点数运算可能不准,例如4.999强制类型转换结果是4需要这方面需要考虑到
常量与枚举
- 常量的定义
- 使用 const 进行常量定义
- const 数值可作为各种类型使用
const filename = "abc.txt"
func consts() {
c = int(math.Sqrt(a*a + b*b))
fmt.Println(filename,c)
}
- 枚举类型
- 特殊的常量
- 通过 const() 来进行定义
func enums() {
php = iota
html
java
_
golang
)
fmt.Println(php, html, java, golang)
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
fmt.Println(b, kb, mb, gb, tb, pb)
}