这个系列是我在看Go语言实战这本书总结出来的,方便忘记的时候查阅关键词,如果要系统的学习Go语言还是看这本书比较好。

main

每个可执行的go程序都有两个要素:

  1. 名称为main的函数,在构建可执行文件时,需要找到这个已经声明的main函数
func main(){

}
  1. 名称为main的包
package main

注意事项

  • main函数要在main包里,否则构建工具无法生成可执行文件

import & package

  • import即导入一段代码,让程序可以访问其中的标识符,即类型、函数、变量、接口等。
  • package包定义一组编译过的代码,每段代码都描述包的一部分。
  • 包的名字可以用来间接访问包内声明的标识符,从而把不同包但是相同名称的标识符区分开
  • 所有处于同一文件夹里的代码文件,都必须使用同一个包名,并且按照惯例,包名和文件夹名同名。
  • go编译器不允许声明导入某个包但是不使用

标准库

  • Go语言的标准库包含了超过150多个具有常用功能的内置包,涵盖了网络、系统、加密、编码、图形等各个方面。
  • 从标准库中导入代码时,只需要给出要导入的包名。编译器查找包的时候,会到GOROOT和GOPATH环境变量引用的位置去查找。Windows查看环境变量输入go env

    photo

标识符的公开

  • 当代码导入一个包时,程序可以直接访问这个包中任意一个公开的标识符。这些公开的标识符需要以大写英文字母开头,以小写字母开头的标识符不能被其他包直接访问。

init

  • 程序中每个代码文件里的init函数都会在main函数执行前调用

_

下划线标识符

  1. 导入包的时候使用。由于Go语言不允许导入某个包但是却不使用,因此下划线让编译器接受这类导入,并且调用包内所有代码文件里定义的init函数
import ( 
  "log" 
  "os"  
  _ "github.com/goinaction/code/chapter2/sample/matchers" 
  "github.com/goinaction/code/chapter2/sample/search" 
) 
  1. 作为占位符使用,如果要调用的函数返回多个值,而又不需要其中的某个值,就可以使用下划线标识符将其忽略
for _, feed := range feeds{
    ...
}