Go-Think

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提供了各种容器的实现,当然如果觉得性能不满足,也有大把的第三方实现
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容