【Golang零基础入门】02 变量与类型

可见性

我们都知道其他面向对象的语言,都是用关键词public、private、protected来标记可见性。
但在GO里,直接用首字母的大小写来决定可见性,大写对外可见,小写仅包内可见。
例如fmt包的Printf函数在fmt包外部访问。

Golang习惯驼峰式命名,例如isExisits()

声明

有四种类型的声明语句:
变量var、常量const、类型type、函数func

变量

1. var声明

var 变量名字 类型 = 表达式

一般 “类型”、或者“=”可以省略一个,例如:

1
2
var i, j, k int // int, int, int
var b, f, s = true, 2.3, "four" // bool, float64, string

用处:用于需要显式指定变量类型地方,或者因为变量稍后会被重新赋值而初始值无关紧要的地方。

2. 简短声明

变量名字 := 表达式

1
i := 100

用处:用于大部分的局部变量的声明和初始化。

注意,简短变量声明语句中必须至少要声明一个新的变量,下面的代码将不能编译通过:

1
2
3
f, err := os.Open(infile)
// ...
f, err := os.Create(outfile) // 编译错误,提示没有新的变量,不需要:=

指针

一个变量对应一个保存了变量对应类型值的内存空间。

一个指针的值是另一个变量的地址。

1
2
3
4
5
i := 1
p := &i // p 类型为 *int 指向i
fmt.Println(*p) // "1"
*p = 2 // 因为p指向了i的地址,所以相当于 i = 2
fmt.Println(i) // "2"

类型

类型声明语句一般出现在包一级,因此如果新创建的类型名字的首字符大写,则在外部包也可以使用。

type 类型名字 底层类型

例子:最常用的struct,User被声明为一个类型

1
2
3
4
type User struct{
name string
age string
}
您的支持将鼓励我继续创作!