Files
build-web-application-with-…/2.1.md
2012-08-25 09:50:30 +08:00

56 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#2.1 你好,GO
在我们开始用GO写应用之前我们先从最基本的程序开始。就像你造房子之前你不知道什么是地基一样因此在本小节中我们要学习用最基本的语法让GO程序运行起来。
##程序
这就像一个传统,学习所有的语言,你应该学习编写的第一个程序就是如何输出`hello world`
准备好了吗Let's GO
package main
import "fmt"
func main() {
fmt.Printf("Hello, world; καλημ ́ρα κóσμ or こんにちは世界\n")
}
输出如下:
Hello, world; καλημ ́ρα κóσμ or こんにちは世界
##详解
首先我们要了解一个概念Go程序是通过`package`来组织的
`package <plaplapla>`在我们的例子里面plaplapla是main这一句话是告诉我们当前这个文件属于那个包而main包是告诉我们当前这个包是一个独立可运行的包编译之后是可执行文件除了main之外其他的包最后生成的都是放在"$GOPATH/pkg/系统_架构“以mac为例darwin_amd64)下面的.a文件(也就是包文件)。
>每一个GO的独立可运行的应用程序必定包含有一个`package main`这个main包里面必定包含有一个入口函数main函数这个函数没有任何的参数也没有的返回值
为了打印"Hello,world..."我们调用了一个函数Printf这个函数来自于fmt这个包所以我们在第三行里面导入了系统级别的fmt包`import "fmt"`
包的概念和python的modules是同一个理念都是有一些特有的好处模块化(能够把你的程序分成多个模块)和重用性(每个模块都能被其他应用程序反复使用),这里我们只要先了解一下包的概念,后面我们将会开始编写自己的包
第五行我们定义了一个main函数,我们通过func这个关键字他的内容通过`{``}`组织就和我们平常写的c、c++、Java一样
大家可以看到main函数是没有任何的参数的但是我们接下来学习如何编写函数里面函数是可以带参数的而且可以不返回数据返回一个或者多个数据
第六行我们调用了fmt包里面定义的函数Printf大家可以看到这个函数的调用是通过`<package name>.function`的方式调用的这个和python是十分相似的
前面提到过包名和包所在文件夹名可以是不同的此处的package name即为通过`package <plaplapla>`声明的包名,而非文件夹名。)
最后大家可以看到我们输出的内容里面包含了很多非ASCII码的字符实际上GO是天生支持UTF-8的任何的语言都可以直接输出
##结论
GO使用package和Python的模块类似来组织代码。main.main函数(这个函数主要位于主包是每一个独立的可运行程序的入口点。GO使用UTF-8字符串和标识符(因为UTF-8的发明者也就是GO的发明者),所以它天生就具有多语言的支持。
## links
* [目录](<preface.md>)
* 上一章: [GO语言基础](<2.md>)
* 下一节: [GO基础](<2.2.md>)
## LastModified
* $Id$