4.2 Go 程序的基本结构和要素

Kesa...大约 2 分钟

4.2 Go 程序的基本结构和要素

4.2.1 包的概念、导入与可见性

包 Package

包是结构化代码的一种方式: 每个程序由包(package)组成,可使用自身的包或者导入其他包的内容。

必须在源文件的非注释第一行指明文件属于哪个包,如:package main

标准库

Golang 中可直接使用的包。

编译

若对一个包进行修改或重新编译,所有引用了的此包的程序必须重新编译。

Golang 中的包采用显示依赖达到快速编译的目的,编译器从后缀名为.o的对象文件中提取传递依赖类型的信息。

例: a.go 依赖 b.go, b.go 依赖 c.go

  • 编译顺序为: c, b, a

导入 Import

使用 import 导入包:

  • import "fmt"
    import "os"
    
  • import (
    	"fmt"
        "os"
    )
    
  • // 使用别名(alias)
    import format "fmt"
    

导入的包若没有使用将会出现错误: imported and not used: xxx

可见性

标识符的可见性:

  • 导出(可见的):大写字母开头,可被外部包调用
  • 不可见的:小写字母开头,不可被外部包调用

4.2.2 注释

注释不会被编译,种类有:

  • 单行注释:

    // comment
    
  • 多行注释:

    /*
    * comment 1
    * comment 2
    */
    

包注释

包的文档说明,用于 package 之前

// Package superman implements methods for saving the world.
//
// Experience has shown that a small number of procedures can prove
// helpful when attempting to save the world.
package superman

文档注释

几乎所有全局作用域的类型、常量、函数和导出的对象的注释,以名称开头。

// EnterOrbit causes Superman to fly into low Earth orbit, a position
// that presents several possibilities for planet salvation.
func EnterOrbit() error {
   ...
}

4.2.3 类型转换

所有类型转换必须是显式的:

valueOfTypeB = typeB(valueOfTypeA)
a := 5.0
b := int(a)

自定义类型

type your_type type
type Integer int

相同底层类型的变量可以相互转换:

var a Integer = 3
c := int(a)
d := Integer(c)
上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2