语法基础
典型的 Go 文件布局
go
package [子句]
[任何import语句]
[实际代码]
声明变量
go
package main
import "fmt"
func main() {
// 声明变量
var quantity int
var length, width float64
var studentName string
// 给变量赋值
quantity = 6
length, width = 8.17, 12.25
studentName = "A.M"
// 使用变量
fmt.Println(quantity)
fmt.Println(studentName)
fmt.Println(length * width)
}
如果你事先知道变量的值是什么,可以在声明变量的同一行进行赋值:
go
package main
import "fmt"
func main() {
// 声明变量并赋值
var quantity int = 6
var length, width float64 = 8.17, 12.25
var studentName string = "A.M"
// 使用变量
fmt.Println(quantity)
fmt.Println(studentName)
fmt.Println(length * width)
}
如果声明变量的同时为其赋值,通常可以在声明中省略变量类型:
go
package main
import (
"fmt"
"reflect"
)
func main() {
// 声明变量并赋值
var quantity = 6
var length, width = 8.17, 12.25
var studentName = "A.M"
// 使用变量
fmt.Println(reflect.TypeOf(quantity))
fmt.Println(reflect.TypeOf(studentName))
fmt.Println(reflect.TypeOf(length))
fmt.Println(reflect.TypeOf(width))
}
短变量声明
go
package main
import (
"fmt"
"reflect"
)
func main() {
// 声明变量并赋值
quantity := 6
length, width := 8.17, 12.25
studentName := "A.M"
// 使用变量
fmt.Println(reflect.TypeOf(quantity))
fmt.Println(reflect.TypeOf(studentName))
fmt.Println(reflect.TypeOf(length))
fmt.Println(reflect.TypeOf(width))
}
- 不需要明确的声明变量的类型
- 赋给变量的值的类型成为该变量的类型
命名规则
Go 简单的规则
- 名称必须以字母开头,并且可以有任意数量的额外的字母和数字
- 只有名称是以大写字母开头的变量、函数或类型才被认为是可导出的:可以从当前包之外的包访问 【这就是为什么
fmt.Println
中的P
是大写的】 - 命名通常采用驼峰命名,例如
topPrice
、RetryConnection
类型转换
go
package main
import (
"fmt"
"reflect"
)
func main() {
// 声明变量并赋值
var quantity int = 6
// 将quantity转换成float64类型
var res = float64(quantity)
// 使用变量
fmt.Println(quantity)
fmt.Println(reflect.TypeOf(quantity))
fmt.Println(res)
fmt.Println(reflect.TypeOf(res))
}