1.元组赋值
a, b := 1, 2 //右边被封装为元组,左边解构赋值
fmt.Println(a, b) //1 2
a, b = b, a //右边被封装为元组,左边解构赋值
fmt.Println(a, b) //2 1
func fib(n int) int {
x, y := 0, 1
for i := 0; i < n; i++ {
x, y = y, x+y
}
return x
}
2. 未使用的变量以及包编译报错
Go中定义了未使用的局部变量或者导入了未使用的包,编译时都会报错
3. 代码格式统一
例如go对函数头处的{
做了规定必须位于首行
fun a() int {
xxx
}
自增,自减只有a++
或者a--
写法
4. 容器
- Go语言标准库提供了数组(等于Java的数组,定长)、切片(等于Java的List,变长)、映射(等于Java的HashMap)、列表(等于Java的LinkList).
- C语言没有提供容器封装,开发者需要自己根据性能需求进行封装,或者使用第三方提供的容器。
- C++ 语言的容器通过标准库提供,如 vector 对应数组,list 对应双链表,map 对应映射等。
- C# 语言通过 .NET 框架提供,如 List 对应数组,LinkedList 对应双链表,Dictionary 对应映射。
- Lua 语言的 table 实现了数组和映射的功能,Lua 语言默认没有双链表支持。
- Java语言JDK提供了各种容器的实现,当然如果觉得性能不满足,也有大把的第三方实现
网友评论