Golang
基础
HelloWord.go
package main
import "fmt"
func main() {
fmt.Print("Hello world")
}
可以直接在终端使用 go run name.go 运行该文件。
使用go build name.go 可以编译成相应平台的可执行文件(如:在windwos上可以生成name.exe,在Mac上生成name.sh)
- 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 protected )
关键字
break | default | func | interface | select |
---|---|---|---|---|
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | switcvarh |
变量
声明格式:
//生命变量的第一种方式
var name string
name = "熊禹"
println(name)
// 第二种 自动判断类型
var value = "value"
println(value)
// 第三种 省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
addrt := "四川"
println(addrt)
常量的定义
如果两个const的赋值语句的表达式是一样的,那么可以省略后一个赋值表达式。
const(
a=iota
b
c
)
同Go语言的其他符号(symbol)一样,以大写字母开头的常量在包外可见。
切片
创建
Go语言支持用myArray[first:last]这样的方式来基于数组生成一 个数组切片,而且这个用法还很灵活,比如下面几种都是合法的。
基于myArray的所有元素创建数组切片: mySlice = myArray[:]
基于myArray的前5个元素创建数组切片:mySlice = myArray[:5]
基于从第5个元素开始的所有元素创建数组切片:mySlice = myArray[5:]
直接创建
并非一定要事先准备一个数组才能创建数组切片。Go语言提供的内置函数make()可以用于
灵活地创建数组切片。下面的例子示范了直接创建数组切片的各种方法。 创建一个初始元素个数为5的数组切片,元素初始值为0:
mySlice1 := make([]int, 5) 创建一个初始元素个数为5的数组切片,元素初始值为0,并预留10个元素的存储空间:
mySlice2 := make([]int, 5, 10) 直接创建并初始化包含5个元素的数组切片:
mySlice3 := []int{1, 2, 3, 4, 5} 当然,事实上还会有一个匿名数组被创建出来,只是不需要我们来操心而已。
myArray:=[]int{1,2,3,4,5,6,7,}
fmt.Println(myArray[:5])
mSlice:=make([]int ,5)
for index := range mSlice {
mSlice[index]=index
}
fmt.Println(mSlice)
mSlice=append(mSlice,1,2,3)
//需要注意的是,我们在第二个参数myArray后面加了三个点,即一个省略号,如果没有这个省 略号的话,会有编译错误,因为按append()的语义,从第二个参数起的所有参数都是待附加的 元素。因为myArray中的元素类型为int,所以直接传递mySlice2是行不通的。加上省略号相 7 当于把myArray包含的所有元素打散后传入。
mSlice=append(mSlice,myArray[:5]...)