GO基础学习 | 青训营笔记

64 阅读2分钟

GO基础学习 | 青训营笔记

1.Go语言开发背景

  1. 计算机硬件技术发展快,计算机多核的优势未被编程语言合理利用。
  2. 软件系统越来越复杂,需要一个简洁高效的编程语言。
  3. c/c++程序运行快、编译慢,而且存在内存泄露的风险。

2.Go语言的特点

Go语言既保证了静态编译语言的安全和性能、又达到了动态语言开发维护的高效率,即Go = C + Python

  1. Go语言继承了C语言的很多理念,包括表达式语法、控制结构、基础数据类型、调用参数传值、指针等等,同时也保留了C语言一样的编译执行方式。
  2. Go语言在组织程序结构上,引入包的概念,即一个文件一个包,文件不能单独存在。
  3. Go语言内存自动回收、无需开发人员管理
  4. Go语言支持并发,语言上实现简单,协程(goroutine)高效利用多核优势,基于CPS并发模型
  5. Go语言具有管道(channel)通信机制,通过管道,可以实现不同协程之间相互通信
  6. 函数可以多值返回,即return a,b,c
  7. Go语言的创新,比如切片(slice)、延时执行(defer)

3.go build 和 go run 的区别

go build 和 go run 都用于编译运行程序。

go build 编译和运行分开,先将.go文件编译成.exe文件,再运行;

go run 编译和运行一步走,中间不产生.exe文件。

go build 的优势是将.go文件及其依赖包打包起来产生.exe文件,exe文件的运行无需go 开发环境;

go run 的优势是不产生中间文件,降低空间占用。

4.Go语言开发注意事项

  1. Go源文件以".go"为扩展名
  2. 程序的执行入口是main()函数
  3. Go语言严格区分大小写
  4. 每条语句结束无需加分号
  5. 每条语句独占一行,不能多条语句写在一行
  6. Go语言不能定义空变量也不能导入未使用的包
  7. 大括号必须成对存在

总结

本次笔记结合第一节课所学内容以及个人的课外拓展,概括了Go语言的开发背景及特点。同时对 go run 和 go build 做了一个区分,最后总结了Go语言开发的注意事项。课后我有自主了解了一些关于go语言的特性,例如:Go语言支持协程并发,且操作简单。协程(goroutine)又称微线程,比线程更轻量、开销更小、性能更高。一个线程可以包含多个协程,协程间一般不做同步通讯,而Go语言中可通过 共享内存型 和 消息传递型 这两种方式实现协程间通讯。

引用

GO基础学习