一、命名
1.命名规则
a.一个名字必须以一个字母(Unicode字母)或者下划线开头。
b.后面可以跟任意数量的字母,数字,下划线。
c.区分大小写
2.不可用于自定义名字的25个关键字
break default func i nterface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var
3.30多个预定义的名字
内建常量: true false iota nil 内建类型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error 内建函数:make len cap new append copy close delete complex real imag panic recover
a.内部预订名字不是关键字
b.可以再定义,重新使用它们
c.一般不要定义它们,除非在一些特殊的场景里。(什么场景能使用,我也想不到。反正少用就对了)
4.作用域
a.如果一个名字是在函数内部定义,那么他就只在函数内部有效。
b.如果在函数外部定义,那么将在当前包的所有文件夹中都可以访问。
c.如果一个名字是大写字母开头的(必须是在函数外部定义的包级名字;包级函数名本身也是包级名字),那么他是可以导出的,也就是说可以被外部的包访问。
d.包本身的名字一般总用小写字母。
5.命名方式
go语言推荐使用驼峰命名方式
二、声明
1.声明语句的意义,以及go语言的四种主要类型
a.声明语句定义了程序的各种实体对象以及部分或全部属性
b.四种类型:
变量:var
常量:const
类型:type
函数:func
2.一个例子简单介绍下各个声明的部分
package main //导入声明 import ( "fmt" ) //常量声明,包一级范围声明。可以再整个包中的每个源文件中使用 const boilingF = 212.0 //函数声明,无返回值,无参数的函数申明 func main() { //变量声明,函数级声明,只能在函数中使用 bool1 :=true if bool1{ fmt.Println("this value is true") }else { fmt.Println("this value is fales") } c := test(1) fmt.Println(c) } //带参数和返回值的函数声明,无返回值省略(返回值)一项。但是哪怕没有参数,也不可省略(参数)这一项。 // func 函数名(参数)(返回值){执行语句} func test(a int) (b int) { b = a +1 return b }