mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 04:22:22 +00:00
ch1: 删除代码编号
This commit is contained in:
parent
453636fe0a
commit
0771fc0655
@ -40,9 +40,7 @@ CSP并发模型最经典的实际应用是来自爱立信发明的Erlang编程
|
||||
|
||||
## 1.1.2 你好, 世界
|
||||
|
||||
按照惯例,介绍所有编程语言的第一个程序都是“Hello, World!”。虽然本教假设读者已经了解了Go语言,但是我们还是不想打破这个惯例(因为这个传统正是从Go语言的前辈C语言传承而来的)。代码1-1展示的Go语言程序输出的是中文“你好, 世界!”。
|
||||
|
||||
*代码 1.1-1*
|
||||
按照惯例,介绍所有编程语言的第一个程序都是“Hello, World!”。虽然本教假设读者已经了解了Go语言,但是我们还是不想打破这个惯例(因为这个传统正是从Go语言的前辈C语言传承而来的)。下面的代码展示的Go语言程序输出的是中文“你好, 世界!”。
|
||||
|
||||
```Go
|
||||
package main
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
目前见到的B语言版本的“Hello World”,一般认为是来自于Brian W. Kernighan编写的B语言入门教程(Go核心代码库中的第一个提交者名字正是Brian W. Kernighan),程序如下:
|
||||
|
||||
*代码 1.2-1*
|
||||
|
||||
```c
|
||||
main() {
|
||||
extrn a, b, c;
|
||||
@ -35,8 +33,6 @@ C语言是由Dennis Ritchie在B语言的基础上改进而来,它增加了丰
|
||||
|
||||
在Brian W. Kernighan于1974年左右编写的C语言入门教程中,出现了第一个C语言版本的“Hello World”程序。这给后来大部分编程语言教程都以“Hello World”为第一个程序提供了惯例。第一个C语言版本的“Hello World”程序如下:
|
||||
|
||||
*代码 1.2-2*
|
||||
|
||||
```c
|
||||
main()
|
||||
{
|
||||
@ -48,8 +44,6 @@ main()
|
||||
|
||||
这个例子同样出现在了1978年出版的《C程序设计语言》第一版中,作者正是Brian W. Kernighan 和 Dennis M. Ritchie(简称K&R)。书中的“Hello World”末尾增加了一个换行输出:
|
||||
|
||||
*代码 1.2-3*
|
||||
|
||||
```c
|
||||
main()
|
||||
{
|
||||
@ -61,8 +55,6 @@ main()
|
||||
|
||||
在K&R的教程面世10年之后的1988年,《C程序设计语言》第二版终于出版了。此时ANSI C语言的标准化草案已经初步完成,但正式版本的文档尚未发布。不过书中的“Hello World”程序根据新的规范增加了`#include <stdio.h>`头文件包含语句,用于包含`printf`函数的声明(新的C89标准中,仅仅是针对`printf`函数而言,依然可以不用声明函数而直接使用)。
|
||||
|
||||
*代码 1.2-4*
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
@ -74,8 +66,6 @@ main()
|
||||
|
||||
然后到了1989年,ANSI C语言第一个国际标准发布,一般被称为C89。C89是流行最广泛的一个C语言标准,目前依然被大量使用。《C程序设计语言》第二版的也再次印刷新版本,并针对新发布的C89规范建议,给`main`函数的参数增加了`void`输入参数说明,表示没有输入参数的意思。
|
||||
|
||||
*代码 1.2-5*
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
|
||||
@ -94,8 +84,6 @@ Newsqueak是Rob Pike发明的老鼠语言的第二代,是他用于实践CSP并
|
||||
|
||||
Newsqueak类似脚本语言,内置了一个`print`函数,它的“Hello World”程序看不出什么特色:
|
||||
|
||||
*代码 1.2-6*
|
||||
|
||||
```go
|
||||
print("Hello,", "World", "\n");
|
||||
```
|
||||
@ -108,8 +96,6 @@ print("Hello,", "World", "\n");
|
||||
|
||||
Newsqueak语言并发版本的“素数筛”程序如下:
|
||||
|
||||
*代码 1.2-7*
|
||||
|
||||
```go
|
||||
// 向管道输出从2开始的自然数序列
|
||||
counter := prog(c:chan of int) {
|
||||
@ -170,8 +156,6 @@ Newsqueak语言中并发体和管道的语法和Go语言已经比较接近了,
|
||||
|
||||
Alef语言并发版本的“Hello World”程序如下:
|
||||
|
||||
*代码 1.2-8*
|
||||
|
||||
```c
|
||||
#include <alef.h>
|
||||
|
||||
@ -204,9 +188,6 @@ Limbo(地狱)是用于开发运行在小型计算机上的分布式应用的
|
||||
|
||||
Limbo语言版本的“Hello World”程序如下:
|
||||
|
||||
|
||||
*代码 1.2-9*
|
||||
|
||||
```go
|
||||
implement Hello;
|
||||
|
||||
@ -233,8 +214,6 @@ init(ctxt: ref Draw->Context, args: list of string)
|
||||
|
||||
### 1.2.6.1 hello.go - 2008年6月
|
||||
|
||||
*代码 1.2-10*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -248,8 +227,6 @@ func main() int {
|
||||
|
||||
### 1.2.6.2 hello.go - 2008年6月27日
|
||||
|
||||
*代码 1.2-11*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -262,8 +239,6 @@ func main() {
|
||||
|
||||
### 1.2.6.3 hello.go - 2008年8月11日
|
||||
|
||||
*代码 1.2-12*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -276,8 +251,6 @@ func main() {
|
||||
|
||||
### 1.2.6.4 hello.go - 2008年10月24日
|
||||
|
||||
*代码 1.2-13*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -292,8 +265,6 @@ func main() {
|
||||
|
||||
### 1.2.6.5 hello.go - 2009年1月15日
|
||||
|
||||
*代码 1.2-14*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -308,8 +279,6 @@ Go语言开始采用是否大小写首字母来区分符号是否可以被导出
|
||||
|
||||
### 1.2.6.7 hello.go - 2009年12月11日
|
||||
|
||||
*代码 1.2-15*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -327,8 +296,6 @@ Go语言终于移除了语句末尾的分号。这是Go语言在2009年11月10
|
||||
|
||||
在经过半个世纪的涅槃重生之后,Go语言不仅仅打印出了Unicode版本的“Hello, World”,而且可以方便地向全球用户提供打印服务。下面版本通过`http`服务向每个访问的客户端打印中文的“你好, 世界!”和当前的时间信息。
|
||||
|
||||
*代码 1.2-16*
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user