如果在同一个文件中声明的类型和常量的都是可以直接访问的,就好像所有的代码都在同一个文件中
如果要导入包,就是import中写路径
var a = b + c // a 第三个初始化, 为 3
var b = f() // b 第二个初始化, 为 2, 通过调用 f (依赖c)
var c = 1 // c 第一个初始化, 为 1
func f() int { return c + 1 }
// 很神奇
func init() {}
// 这个函数不能被调用或者引用
操作符就是c有的go都有
支持复数
package main
import "fmt"
func main() {
var x complex64 = complex(1, 2) // 1 + 2i
fmt.Println(x)
}
// (1+2i)
package main
import "fmt"
func main() {
s := "hello"
fmt.Println(s[2]) // 这里支持切片操作
}
// 108
// 注意这个输出
// fmt.Println(s[:5]) // "hello"
// fmt.Println(s[7:]) // "world"
// fmt.Println(s[:]) // "hello, world"
// slice 动态数组(切片)
append
// map
// 结构体
type tree struct {
value int
left,right *tree
}
// 多个返回值要加括号
// 可变参数
func sum(vals ...int) int {
total := 0
for _, val := range vals {
total += val
}
return total
}
sum() sum(2) sum(1, 2, 3)