一、GO语言特点
-
Go将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡。
-
同时Go 语言对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机。
-
构建速度快(编译和链接到机器代码的速度),一般情况下构建一个程序的时间只需要数百毫秒到几秒,摆脱了c++在构建上的噩梦。
-
Go 语言采用包模型的根本原因,这个模型通过严格的依赖关系检查机制来加快程序构建的速度,提供了非常好的可量测性。
-
内存问题(通常称为内存泄漏)长期以来一直伴随着 C++ 的开发者们,Go 语言的设计者们认为内存管理不应该是开发人员所需要考虑的问题。因此尽管 Go 语言像其它静态语言一样执行本地代码,但它依旧运行在某种意义上的虚拟机,以此来实现高效快速的垃圾回收(使用了一个简单的标记-清除算法)
(1)需求:
1. 打印hello world!
(1) go文件的后缀是go
(2) package main
表示该hello.go文件所在的包是main,在go中,每个文件都必须归属于一个包。
(3)import "fmt"
表示:引入一个包fmt
(4) func main(){
}
func是一个关键字,表示一个函数。
main是函数名,是一个主函数,即程序入口。
2. 通过go build命令对该go文件进行编译,生成.exec文件。
>cd /Users/tjm/goproject/src/gocode/project01/main/
>go build hello.go
生成一个.exec文件
3. 运行hello.exec文件
4. 通过go run可以直接运行hello.go程序(类似于执行一个脚本文件的形式,相比编译后运行速度慢些)
5. go run与go build的区别
- go build生成可执行文件,可以拷贝在没有go开发环境的机器上运行,而go run 需要go 开发环境。
- go源代码编译成可执行文件,编译器会将程序运行依赖的库文件包含在可执行文件中,文件大小会变大很多。
6. Go build编译时,指定生成的可执行文件名
> go build -o myhello.exe hello.go
(2)go语言程序开发注意事项
- Go应用程序执行入口是从main开始
- 严格区分大小写
- Go方法由一条条语句构成,每个语句后面不需要加分号(==Go会在每行后自动加分号==)
- Go是一行一行进行编译的,所以一行只能写一条语句
- ==GO语言定义的变量或者import的包如果没有使用到,代码不能编译通过==(与别的语言最为不同的地方)
(3)Go语言转义字符(escape char)
-
\t : 制表符
-
\n :转行
-
==\r :回车==
回车不是回到下一行,而是回到这一行开头,覆盖开头的字符。
package main import "fmt" func main() { fmt.Println("小兔子乖乖\r白色的") }
-
\:一个\
-
\ ":一个 "
(4)代码风格
缩进
- shift +tab
> gofmt -w main.go
该指令将格式化后的内容重新写入文件,当程序员重新打开文件后,就会看到格式化后的文件。
正确的代码风格
package main
import "fmt"
func main(){
fmt.Println("hello world!")
}
错误的代码风格(与c++,java不同)
package main
import "fmt"
func main()
{//go语言不允许这么写
fmt.Println("hello world!")
}