Posted on 2013-07-30 08:44
oathleo 阅读(198)
评论(0) 编辑 收藏 所属分类:
Golang
包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。
如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go
为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。
你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main
。package main
表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main
的包。
如果需要多个包,它们可以被分别导入:
import "fmt" import "os"
或:
import “fmt”; import “os”
但是还有更短且更优雅的方法(被称为因式分解关键字,该方法同样适用于 const、var 和 type 的声明或定义):
import ( "fmt" "os" )
可见性规则
当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group1,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的 private )。
你可以通过使用包的别名来解决包名之间的名称冲突,或者说根据你的个人喜好对包名进行重新设置,如:import fm "fmt"
。下面的代码展示了如何使用包的别名:
Example 4.2 alias.go
package main import fm "fmt" // alias3 func main() { fm.Println("hello, world") }
函数里的代码(函数体)使用大括号 { }
括起来。
左大括号 {
必须与方法的声明放在同一行,这是编译器的强制规定,否则你在使用 gofmt 时就会出现build-error: syntax error: unexpected semicolon or newline before {
这样的错误提示。
一个函数可以拥有多返回值,返回类型之间需要使用逗号分割,并使用小括号 ( )
将它们括起来,如:func FunctionName (a typea, b typeb) (t1 type1, t2 type2)