咖啡伴侣

呆在上海
posts - 163, comments - 156, trackbacks - 0, articles - 2

Go start1

Posted on 2013-07-30 08:44 oathleo 阅读(195) 评论(0)  编辑  收藏 所属分类: Golang

包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。

如同其它一些编程语言中的类库或命名空间的概念,每个 Go 文件都属于且仅属于一个包。一个包可以由许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。

你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package mainpackage 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)


只有注册用户登录后才能发表评论。


网站导航: