go基本语法
变量定义
package main
import "fmt"
// 定义变量 var 【可放在函数内,或直接放在包内】
var aa = 3 // 作用域:只存在当前包内部
var ss = "hello"
var (
bb = 1
cc = "123"
)
func variable() {
var a int
var s string
fmt.Printf("%d %q\n", a, s)
}
func variableValue() {
var a, b = 3, 4
var s string = "123"
fmt.Println(a, b, s)
}
func variableTypeDeduction() {
var a, b, c, d = 3, 4, true, "def" // 让编译器自动识别变量类型
fmt.Println(a, b, c, d)
}
func variableShorter() {
a, b, c, d := 3, 4, true, "def" // := 只允许在函数内使用,不能在外面使用
b = 5
fmt.Println(a, b, c, d)
}
func main() {
fmt.println("Hello word")
variable()
variableValue()
variableTypeDeduction()
variableShorter()
fmt.Println(aa, bb, cc, ss)
}
==============================
Hello word
0 ""
3 4 123
3 4 true def
3 5 true def
3 1 123 hello
内建变量类型
- bool,string
- (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr //ptr:指针
- byte,rune
- float32,float64,complex64,complex128 // complex 复数
常量定义
//常量 const 数值可作为各种类型使用
const filename = "abc.txt"
func consts() {
const a, b = 3, 4
var c int
c = int(math.Sqrt(a*a + b*b))
fmt.Println(filename, c)
}
==================
abc.txt 5
枚举类型
// 枚举类型通过 iota 来定义
func meiju() {
const (
a = 1 + iota //自增枚举
b
c
d
)
fmt.Println(a, b, c, d)
}
===================
1 2 3 4
条件语句
# if-else
func main() {
const filename = "abc.txt"
//contents, err := ioutil.ReadFile(filename)
//if err != nil {
// fmt.Println(err)
//} else {
// fmt.Println("%s\n", contents)
//}
if contents, err := ioutil.ReadFile(filename); err != nil {
fmt.Println(err)
} else {
fmt.Println("%s\n", contents)
}
}
==========
open abc.txt: no such file or directory
# switch
func grade(score int) string {
g := ""
switch {
case score < 0 || score > 100:
panic(fmt.Sprintln("Wrong score:%d", score))
case score < 60:
g = "F"
case score < 80:
g = "C"
case score < 90:
g = "B"
case score <= 100:
g = "A"
}
return g
}
=========