Go 入门 - 包,函数和变量
程序员文章站
2022-06-18 20:56:40
主要内容来自中文版的同名教程 "Go语言之旅" 其目的为总结要点 包,函数和变量 包 import 语法,多个用括号换行扩起,包之间不需要间隔符,用引号引起 go import ( "fmt" "math/rand" ) // 官方认为分组导入比多个导入更好 // 用 引用包内对象,仅有首字母大写的 ......
主要内容来自中文版的同名教程go语言之旅
其目的为总结要点
包,函数和变量
包
import 语法,多个用括号换行扩起,包之间不需要间隔符,用引号引起
import ( "fmt" "math/rand" ) // 官方认为分组导入比多个导入更好 // 用`.`引用包内对象,仅有首字母大写的那些对象是可导出的
函数
函数声明
func add(x int, y int) int { //类型在变量名之后 return x + y } func add(x, y int, s string) int { // 其实输入变量就像是没有var的变量声明一样 fmt.println(s) return x + y } func swap(x, y string) (string, string) { // 函数的返回值只用声明类型,也可以返回多个值,但是要记住用括号括起来 return y, x } func split(sum int) (x, y int) { // 返回值也可以提前声明好,这样就可以直接用了,官方建议这种用法还是用在短函数里面 x = sum * 4 / 9 y = sum - x return }
变量
var c, python, java bool // var 可以用在包或者函数级别的声明中 var i, j int = 1, 2 // 变量可以初始化 var c, python, java = true, false, "no!" // 初始化值存在时,可以省略类型 c, python, java := true, false, "no!" // 和上一个等效 var ( c, python bool java string ) // 这种操作也是存在的
我们说var =
和 :=
是等价的。但是函数外(包之外)的每一个语句都必须以关键字开头,因此:=
这种结构不能用在函数之外。
bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // uint8 的别名 rune // int32 的别名 // 表示一个 unicode 码点 float32 float64 complex64 complex128 // go 支持复数运算
go 的变量需要显示类型转换
var i int = 42 var f float64 = float64(i) var u uint = uint(f) // 如果在函数内 i := 42 f := float64(i) u := uint(f)
常量声明
const world = "世界"
不能用:=
,数值常量是高精度的值,有意思的是,他可以被解释成int
和float