From 35b9415818d27d76ed348f5d518e7c01dba614e0 Mon Sep 17 00:00:00 2001 From: astaxie Date: Fri, 7 Sep 2012 10:24:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9GO=E4=B8=BAGo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2.1.md | 110 ++++++++++++++++++++++++++--------------------------- 2.2.md | 14 +++---- 2.3.md | 4 +- 2.md | 12 +++--- preface.md | 8 ++-- 5 files changed, 74 insertions(+), 74 deletions(-) diff --git a/2.1.md b/2.1.md index 28a91182..5b26efb7 100644 --- a/2.1.md +++ b/2.1.md @@ -1,55 +1,55 @@ -#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是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,大家可以看到,这个函数的调用是通过`.function`的方式调用的,这个和python是十分相似的 - -(注:前面提到过,包名和包所在文件夹名可以是不同的,此处的package name即为通过`package `声明的包名,而非文件夹名。) - -最后大家可以看到我们输出的内容里面包含了很多非ASCII码的字符,实际上,GO是天生支持UTF-8的,任何的语言都可以直接输出 - - -##结论 - -GO使用package(和Python的模块类似)来组织代码。main.main函数(这个函数主要位于主包)是每一个独立的可运行程序的入口点。GO使用UTF-8字符串和标识符(因为UTF-8的发明者也就是GO的发明者),所以它天生就具有多语言的支持。 - -## links - * [目录]() - * 上一章: [GO语言基础](<2.md>) - * 下一节: [GO基础](<2.2.md>) - -## LastModified - * $Id$ +#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是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,大家可以看到,这个函数的调用是通过`.function`的方式调用的,这个和python是十分相似的 + +(注:前面提到过,包名和包所在文件夹名可以是不同的,此处的package name即为通过`package `声明的包名,而非文件夹名。) + +最后大家可以看到我们输出的内容里面包含了很多非ASCII码的字符,实际上,GO是天生支持UTF-8的,任何的语言都可以直接输出 + + +##结论 + +GO使用package(和Python的模块类似)来组织代码。main.main函数(这个函数主要位于主包)是每一个独立的可运行程序的入口点。GO使用UTF-8字符串和标识符(因为UTF-8的发明者也就是GO的发明者),所以它天生就具有多语言的支持。 + +## links + * [目录]() + * 上一节: [Go语言基础](<2.md>) + * 下一节: [Go基础](<2.2.md>) + +## LastModified + * $Id$ diff --git a/2.2.md b/2.2.md index 3caecf60..6b922d3d 100644 --- a/2.2.md +++ b/2.2.md @@ -1,12 +1,12 @@ -#2.2 GO基础 +#2.2 Go基础 -这小节我们将要介绍如何定义变量、常量;GO内置类型以及一些GO设计中的技巧 +这小节我们将要介绍如何定义变量、常量;Go内置类型以及一些Go设计中的技巧 ##定义变量 -GO语言里面定义变量有好几种方式。 +Go语言里面定义变量有好几种方式。 -最基本的定义变量如下,go变量定义,它的类型是跟在变量后面的,而不是像C一样放前面 +最基本的定义变量如下,Go变量定义,它的类型是跟在变量后面的,而不是像C一样放前面 //定义一个名称为“variable_name”、类型为"type"的变量 var variable_name type @@ -29,12 +29,12 @@ GO语言里面定义变量有好几种方式。 */ var vname1,vname2,vname3 type= v1, v2, v3 -你是不是觉得上面这样的定义有点复杂,没关系,因为go语言的设计者也发现这样复杂了,我们来让它变得简单一点,我们可以直接忽略类型这个申明,那么上面的什么变成了如下 +你是不是觉得上面这样的定义有点复杂,没关系,因为Go语言的设计者也发现这样复杂了,我们来让它变得简单一点,我们可以直接忽略类型这个申明,那么上面的什么变成了如下 /* 定义三个变量,他们分别初始化相应的值 vname1为v1,vname2为v2,vname3为v3 - 然后他们的类型自动根据初始化的值来确定相应的类型,go会帮你做这件事 + 然后他们的类型自动根据初始化的值来确定相应的类型,Go会帮你做这件事 */ var vname1,vname2,vname3= v1, v2, v3 @@ -427,7 +427,7 @@ map的初始化可以通过key:val的方式初始化值,同时map内置有判 ## links * [目录]() - * 上一章: [你好,GO](<2.1.md>) + * 上一章: [你好,Go](<2.1.md>) * 下一节: [流程和函数](<2.3.md>) ## LastModified diff --git a/2.3.md b/2.3.md index 7be4c40a..99cacc3c 100644 --- a/2.3.md +++ b/2.3.md @@ -1,5 +1,5 @@ #2.3 流程和函数 -这小节我们要介绍go里面的流程控制以及函数操作 +这小节我们要介绍Go里面的流程控制以及函数操作 ##流程控制 流程控制是最伟大的发明了,因为有了他,你可以通过很简单的描述来表达很复杂的事情 ###if @@ -450,7 +450,7 @@ Go程序里面会自动调用init()和main(),所以你不需要在任何地方 ## links * [目录]() - * 上一章: [GO基础](<2.2.md>) + * 上一章: [Go基础](<2.2.md>) * 下一节: [struct类型](<2.4.md>) ## LastModified diff --git a/2.md b/2.md index d3e214b1..f47a3a83 100644 --- a/2.md +++ b/2.md @@ -1,8 +1,8 @@ -# 2 GO语言基础 +# 2 Go语言基础 ## 目录 - * 1. [你好,GO](2.1.md) - * 2. [GO基础](2.2.md) + * 1. [你好,Go](2.1.md) + * 2. [Go基础](2.2.md) * 3. [流程和函数](2.3.md) * 4. [struct类型](2.4.md) * 5. [面向对象](2.5.md) @@ -10,7 +10,7 @@ * 7. [并发](2.7.md) * 8. [小结](2.8.md) -GO是一门类似C的编译性语言,但是他的编译速度非常快,这门语言的关键字加起来也就二十五个,比英文字母的二十六还少一个,这对于我们来说学习就变得简单了很多,先让我们看一眼这些关键字都长成怎么样: +Go是一门类似C的编译性语言,但是他的编译速度非常快,这门语言的关键字加起来也就二十五个,比英文字母的二十六还少一个,这对于我们来说学习就变得简单了很多,先让我们看一眼这些关键字都长成怎么样: break default func interface select case defer go map struct @@ -18,13 +18,13 @@ GO是一门类似C的编译性语言,但是他的编译速度非常快,这 const fallthrough if range type continue for import return var -在接下来的这一章里面,我将带领你去了解这门语言的基础,通过每个小节的介绍,你将会了解到GO的世界是那么的简洁,设计是如此的美妙,编写GO将会是一件愉快的事情,回过头来你就会发现上面这二十五个关键字是那么的亲切。 +在接下来的这一章里面,我将带领你去了解这门语言的基础,通过每个小节的介绍,你将会了解到Go的世界是那么的简洁,设计是如此的美妙,编写Go将会是一件愉快的事情,回过头来你就会发现上面这二十五个关键字是那么的亲切。 ## links * [目录]() * 上一章: [第一章总结](<1.5.md>) - * 下一节: [你好,GO](<2.1.md>) + * 下一节: [你好,Go](<2.1.md>) ## LastModified * $Id$ \ No newline at end of file diff --git a/preface.md b/preface.md index 47a0dea2..02251871 100644 --- a/preface.md +++ b/preface.md @@ -4,9 +4,9 @@ - 1.3. [Go 命令](1.3.md) - 1.4. [Go开发工具](1.4.md) - 1.5. [小结](1.5.md) -* 2.[GO语言基础](2.md) - - 2.1. [你好,GO](2.1.md) - - 2.2. [GO基础](2.2.md) +* 2.[Go语言基础](2.md) + - 2.1. [你好,Go](2.1.md) + - 2.2. [Go基础](2.2.md) - 2.3. [流程和函数](2.3.md) - 2.4. [struct](2.4.md) - 2.5. [面向对象](2.5.md) @@ -15,7 +15,7 @@ - 2.8. [小结](2.8.md) * 3.[Web基础](3.md) - 3.1 [web工作方式](3.1.md) - - 3.2 [GO搭建一个简单的web服务](3.2.md) + - 3.2 [Go搭建一个简单的web服务](3.2.md) - 3.3 [Go如何使得web工作](3.3.md) - 3.4 [Go的http包详解](3.4.md) - 3.5 [小结](3.5.md)