Go语言基础 -- Go语言的特点和注意事项
1. 语言的特点
Go语言保证了技能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言,Go=C+Python
-
从C语言继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针,
-
引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不是单独存在
-
垃圾回收机制,内存自动回收,不需开发人员管理
-
天然并发
- 从语言层面支持并发,实现简单
goroutine,轻量级线程,可是心打冰法处理,高效利用多核- 基于CPS并发模型(Communicating Sequential Process)实现
- 吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的
goroutine之间的相互通信
-
函数返回多个值
package main //一个go文件需要在一个包中 func sayOk(n1 int,n2 int)(int,int){ sum := n1 + n2 //go语句后面,编译器会自动带分好 sub := n1 - n2 return sum,sub } -
新的创新,比如切片slice(动态数组),延时执行defer等
2. 开发目录结构

说明:
package main表示hello.go文件所在的包是main,在go中,每个文件必须归属一个包bin目录存放编译后的二进制文件,可以使用go build 文件名 对该go文件进行编译,生成exe文件,可以指定生成可执行文件的文件名go build -o xxx.exe hello.go

- go run 可以直接运行
hello.go程序(类似执行一个脚本文件的形式) linux环境下,在运行可执行程序的时候是以./文件名方式执行
3. 执行流程分析

说明两种执行流程的方式区别
- 如果先编译生成了可执行文件,那么可以将可执行文件拷贝到go开发环境的机器上仍然可以运行
- 如果直接用go run go源代码,那么如果要在另一个机器上这么运行,也需要go开发环境,否则无法执行
- 在编译时,编译器会将程序运行以来的库文件包含在可执行文件中,所以,可执行文件变大了很多
编译
编译就是go源文件通过编译器将其编译成机器可以识别的二进制码文件
运行
执行二进制文件
4. 开发注意事项
- Go源文件以.go为扩展名
- Go应用程序的执行入口是main()函数
- Go语言严格区分大小写
- Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也提现出
Golang的简洁性 - Go编译器是一行一行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错
- Go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
- 大括号都是成对出现的,缺一不可
python防脱发技巧

浙公网安备 33010602011771号