Go 入门 | Go主题月

480 阅读3分钟

一、GO语言特点

  • Go将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡。

  • 同时Go 语言对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机。

  • 构建速度快(编译和链接到机器代码的速度),一般情况下构建一个程序的时间只需要数百毫秒到几秒,摆脱了c++在构建上的噩梦。

  • Go 语言采用包模型的根本原因,这个模型通过严格的依赖关系检查机制来加快程序构建的速度,提供了非常好的可量测性。

  • 内存问题(通常称为内存泄漏)长期以来一直伴随着 C++ 的开发者们,Go 语言的设计者们认为内存管理不应该是开发人员所需要考虑的问题。因此尽管 Go 语言像其它静态语言一样执行本地代码,但它依旧运行在某种意义上的虚拟机,以此来实现高效快速的垃圾回收(使用了一个简单的标记-清除算法)

    (1)需求:

    1. 打印hello world!

截屏2021-03-31 上午10.00.04.png

(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文件

截屏2021-03-31 上午10.11.55.png

3. 运行hello.exec文件

截屏2021-03-31 上午10.14.23.png

4. 通过go run可以直接运行hello.go程序(类似于执行一个脚本文件的形式,相比编译后运行速度慢些)

截屏2021-03-31 上午10.17.10.png

5. go run与go build的区别

  • go build生成可执行文件,可以拷贝在没有go开发环境的机器上运行,而go run 需要go 开发环境。
  • go源代码编译成可执行文件,编译器会将程序运行依赖的库文件包含在可执行文件中,文件大小会变大很多。

截屏2021-04-08 下午3.07.29.png

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白色的")
    }
    

    ![截屏2021-04-08 下午3.50.15](/Users/tjm/Library/Application Support/typora-user-images/截屏2021-04-08 下午3.50.15.png)

  • \:一个\

  • \ ":一个 "

(4)代码风格

缩进

  1. 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!")
}