1. 类型的作用域
- 声明在函数内部,是函数的本地值,类似private
- 声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect
- 声明在函数外部且首字母大写是所有包可见的全局值,类似public
2. 几种声明方式
- var 声明变量,格式:var 变量名 变量类型
- const 声明常量,格式:const identifier [type] = value,iota是Go中一个特殊常量,可以认为是一个可以被编译器修改的常量,iota是Go语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
- type(声明类型)如:结构体
type 类型名 struct {
字段名 字段类型
字段名 字段类型
…
}
type student struct {
name string
age int
}
type student struct {
name string
age int
}
var s student
s.name = "Mossil"
s.age = 18
fmt.Println(s)
- func(声明函数)格式:func function_name( [parameter list] ) [return_types] { 函数体 } Go语言中的函数有以下几个特点
(1). 无需声明原型
(2). 支持不定传参
(3). 支持多个返回值
(4). 支持命名返回参数
(5). 支持匿名函数和闭包
(6). 函数也是一种类型,一个函数可以赋值给变量
(7). 不支持嵌套 (nested) 一个包不能有两个名字一样的函数
(8). 不支持重载 (overload)
(9). 不支持默认参数 (default parameter)
func test(x, y int, s string) (int, string) {
n := x + y return n, s
}
func dome() {
fmt.Println("dome")
}