Skip to content

Commit

Permalink
Updates 11-hello.md
Browse files Browse the repository at this point in the history
Auto commit by GitBook Editor
  • Loading branch information
FengNote committed Aug 15, 2016
1 parent c93ae21 commit 392c3b5
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions 11-hello.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,17 @@ Hello, 世界

如果你运行go get gopl.io\/ch1\/helloworld, 该命令就会从网络上对应地址获取源码,存放到本地的相应目录中。在2.6节和10.7节中会有更详细的描述。

现在我们来仔细看下这个程序本身。Go代码以包的形式来管理,包的概念和其他一些语言里库的概念或是模块的概念相似。一个包由一个或多个.go源文件组成,这些源文件放在同一个目录里,里面定义了这个包的功能实现。每一个源文件开头都是一个包的声明,在这个例子里导入声明是pacakage main, 说明了该文件所属的包叫做main。后面跟着该文件需要导入的其他包的名字,然后是代码文件本身实现的程序的声明。

Go标准库有超过100个包,涵盖各种常见任务的实现, 包括输入和输出,排序,以及文本处理。比如说fmt包里面有实现格式化打印输出的函数和扫描输入的函数。Println是fmt中的一个基本输出函数。它打印出一个或多个值,用空格隔开,在行尾会加一个换行符,这样每一个值打印出来后都会新起一行。

Package main是一个特殊的包,它定义了一个独立的可执行程序,而不是一个library。在package main 中同样有一个特殊的函数,main函数,这是一个可执行程序的入口。main所做的事情就是这个程序做的事情。当然,main通常是靠调用其他包里面的其它函数来完成这些事情的,比如调用fmt.Println.

我们必须告诉编译器当前源文件到底需要哪些package的依赖,这正是import 声明的使命,import声明跟在package 声明之后。hello world程序只是用了外部的一个包中的一个函数,但是大多数程序会依赖更多的package。

你必须精确的进行包引用。如果少了一个包,或是多饮用了一些没有用到的包,编译的时候都会出错。这个严格要求避免了程序演进的过程中越来越多的引用一些不必要的包而使得程序整体变得不必要的臃肿。

import声明必须跟在package声明的后面。在那之后会是程序的其他组成部分:函数声明, 变量, 常量, 还有类型定义(分别有各自的关键字定义: func, var, const, 还有type\);对于大多数组成部分而言,声明的顺序并不重要。示例程序很简短,只定义了一个函数,而这个函数也正好只调用了一个别的函数。为了节省空间,我们在演示时有时会隐藏package和import声明,但是源文件中肯定是有这些声明的,否则无法编译。



Expand Down

0 comments on commit 392c3b5

Please sign in to comment.