本文属翻译,原文地址 http://goroot.org/viewthread.php?tid=29&extra=page%3D1
介绍[Top]
这个文档是介绍GO编程语言的,针对熟悉C或者C++的程序员. 这不是一个广泛适用的入门介绍; 接近入门指导的文件请参考语言详述. 在你看完这份指导之后,你可能需要看一下高效GO编程, 一分更深入介绍GO的文件. 同时,三天教程的PPT版请参考: Day 1, Day 2, Day 3.
这个主要是通过一个适当的程序来介绍GO语言的特性. 所以的程序都运行正常并且保存在 /doc/progs/下。
程序片断均以原先的行号注释,为清晰,空白行保持空白.
(译者注,由于原先已标行号,则不再以代码高亮显示)
Hello, World[Top]
让我们以常规方式来开始:
1.
2. 05 package main
3.
4. 07 import fmt "fmt" // Package implementing formatted I/O.
5.
6. 09 func main() {
7. 10 fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n");
8. 11 }
复制代码
GO源码均以所在的包语句来声明. 也可以导入其它包来使用它们的功能. 这个程序导入fmt包使用如今以大写开头,封装好的,友好的fmt.Printf.
函数以关键词func来标识. 这个main包的main函数是程序开始运行的地方(在初始化之后)。
字符串常量可以包含Unicode字符集, UTF-8编码. (事实上,GO的源码也是以UTF-8编码的.)
注释语句和C++的一样:
/* ... */
// ...
我们后面会介绍更多关于打印输出的.
编译[Top]
Go 是编译语言. 目前有两种编译器. Gccgo 是使用gcc端的编译器. 还有一套以不同名字命名的,针对不同硬件体系的编译器: 6g用于64位x86平台, 8g 用于32位x86平台, 还有更多. 这些编译器运行速度明显快于通用平台下的gccgo. 写本文时 (2009年底), 它们更具有鲁棒运行期系统,当然gccgo也在赶上来.
我们来看一下怎么使用6g来编译和运行我们的程序,
1.
2. $ 6g helloworld.go # compile; object goes into helloworld.6
3. $ 6l helloworld.6 # link; output goes into 6.out
4. $ 6.out
5. Hello, world; or Καλημέρα κόσμε; or こんにちは 世界
6. $
复制代码
使用gccgo看起来更传统一点.
1.
2. $ gccgo helloworld.go
3. $ a.out
4. Hello, world; or Καλημέρα κόσμε; or こんにちは 世界
5. $
复制代码
Echo[Top]
接下来,有个unix版本的echo:
1. 05 package main
2.
3. 07 import (
4. 08 "os";
5. 09 "flag"; // command line option parser
6. 10 )
7.
8. 12 var omitNewline = flag.Bool("n", false, "don't print final newline")
9.
10. 14 const (
11. 15 Space = " ";
12. 16 Newline = "\n";
13. 17 )
14.
15. 19 func main() {
16. 20 flag.Parse(); // Scans the arg list and sets up flags
17. 21 var s string = "";
18. 22 for i := 0; i < flag.NArg(); i++ {
19. 23 if i > 0 {
20. 24 s += Space
21. 25 }
22. 26 s += flag.Arg(i);
23. 27 }
24. 28 if !*omitNewline {
25. 29 s += Newline
26. 30 }
27. 31 os.Stdout.WriteString(s);
28. 32 }
复制代码
这个程序很小,但它做了几件事。在上一个程序,我们看到func标识一个函数. 而关键字var, const, and type (还没用到) 也能用来引入一个声明,正如import所为. 注意到我们可以把声明放进一个括号里,然后用分号将它们分隔开,如第7-10,和第14-17行所示. 但不是必要的,我们也可以这样做
1.
2. const Space = " "
3. const Newline = "\n"
复制代码
。。。翻译中,未完待续。。。
分享到:
相关推荐
**Goc编程工具详解** Goc编程工具是一种专为初学者设计的C++学习辅助工具,尤其适合小学二年级到高中的学生。它利用图形化界面来帮助用户理解和操作C++编程,使得复杂的编程概念变得更为直观易懂。在本文中,我们将...
《Golang语言编程》中文版教程是一份专为初学者设计的全面学习资源,旨在帮助读者快速掌握Go语言的基础知识和核心概念。...配合jb51.net上的资源,你可以找到更多的实践案例和进阶内容,进一步提升你的Go语言编程能力。
《实效GO编程》即《Effective Go》,是Go语言官方提供的指导文档,旨在帮助开发者们更高效地使用Go语言进行编程。这份文档不仅适用于Go语言的初学者,也对那些希望深入理解和掌握Go语言的编程习惯和风格的程序员有着...
Golang(Go语言)是一种开源的编程语言,它以其简洁的语法、高效的性能以及现代软件工程的最佳实践而受到广泛欢迎。在学习Golang时,可以重点关注以下几个方面: - **基础语法**:包括变量、数据类型、控制结构等...
Go编程语言规范是Go语言开发者必须遵循的一套标准,它详细...通过上述解读,我们可以了解Go语言规范的丰富内容,这不仅适用于初学者,同样对有经验的Go开发者也至关重要,因为它为编写符合标准的代码提供了明确的指导。
微信群召集帖|公众号二维码见下方|中文项目地址Go语言101是关于Go语言编程的一系列丛书。目前本系列丛书包括《Go语言(基础知识)101》是一本关于Go语法语义(除了自定义泛型)以及运行时相关知识点的编程指导书...
Go语言在设计时遵循了一些指导原则,如减少编译器需要跟踪的信息量(减少bookkeeping)、使用较少的关键字以减少无谓的输入,并设计了没有隐式转换的强类型系统,以及显式类型转换、指针运算和slice等特性,以提供...
本系列课程专为具备一定编程基础的中级开发者设计,旨在深入探索Go语言的各个方面,从而帮助学习者在云计算、微服务等热门技术领域中有效运用Go。课程内容全面,涵盖从Go语言基础到实战项目开发的全过程。 课程首先...
《Uber Go 语言编程规范中文版》是一份详细的Go语言编码...通过遵循Uber的Go语言编程规范,开发者能够编写出更加高效、可维护的代码,同时提升团队间的代码一致性,减少潜在的bug,从而提高整体项目质量和开发效率。
### Go语言编程(英文原版) #### 重要知识点解析 **1. Go语言的起源与发展** - **起源与演变**:Go语言是由贝尔实验室在2007年开始设计的一种新编程语言,由Robert Griesemer、Rob Pike及Ken Thompson共同开发...
《高清Go Web编程英文原版》是一本专为Go语言Web开发人员精心编写的经典教程。这本书详尽地探讨了如何使用Go语言构建高效、可扩展的Web应用程序。Go语言,由Google公司设计,以其简洁的语法、高效的性能以及内置的...
《Go语言编程规范中文版-Google出品》是Google官方针对Go语言制定的一份编码风格指南,旨在提升Go代码的可读性和一致性。这份规范不仅适用于Google内部的开发人员,也对外公开,为广大的Go程序员提供了参考。以下是...
Go语言,全称Golang,是Google推出的一种静态类型的、编译式的、并发型、垃圾回收的、C风格的编程语言。它的设计目标是提高开发效率和程序性能,特别适合构建网络服务和分布式系统。 GoGTK,或gotk3,是Go语言的一...
- **面向对象**:虽然Go语言不完全支持传统的面向对象编程,但可以通过结构体和接口来模拟面向对象的行为。 - **interface**:阐述接口的概念,如何定义接口以及如何实现接口的方法。 - **并发**:Go语言的一大特色...
"Go语言编程"这本书可能涵盖了Go语言的基础到高级概念,包括但不限于: 1. **基础语法**:变量、常量、数据类型(如int、float、string、bool)、控制结构(if、for、switch)、函数、结构体和接口。 2. **包与...
Go语言,又称为Golang,是由Google开发的一种静态类型的、编译型的、并发型且垃圾回收的编程语言。它设计简洁、效率高,特别适合于编写服务器端和网络应用。Go语言的语法接近C语言,但同时也引入了诸如goroutine(轻...