forked from mikespook/Learning-Go-zh-cn
-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathgo-preface.tex
74 lines (59 loc) · 2.99 KB
/
go-preface.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
\epi{``Go 是面向对象的语言吗?是也不是。''}
{\textit{FAQ}\\ \textsc{GO AUTHORS}}
\section{读者}
\noindent{}这是关于来自~Google 的~Go 语言的简介。
目标是为这个新的、革命性的语言提供一个指南。
本书假设你已经在系统中安装了~Go。
这本书的目标读者是那些熟悉编程,并且了解某些编程语言,例如~C\cite{c},C++\cite{c++},\\
Perl\cite{perl}, Java\cite{java},Erlang\cite{erlang},Scala\cite{scala},Haskell\cite{haskell}。
这\emph{不是}教你如何编程的书,只是教你如何使用~Go。
学习某样新东西,最佳的方式可能是通过编写程序来探索它。
因此每章都包含了若干练习(和答案)来让你熟悉这个语言。
练习标有编号~\textbf{Q$n$},而~$n$~是一个数字。
在练习编号后面的圆括号中的数字指定了该题的难度。
难度范围从~0~到~2:
\begin{enumerate}
\setcounter{enumi}{-1}
\item 简单;
\item 中等;
\item 困难。
\end{enumerate}
其后为了容易索引,提供了一个简短的标题。
例如:
\begin{verse}
\textbf{Q1}. (1) map 函数 \ldots
\end{verse}
展示了难度等级~1、编号~\textbf{Q1} 的关于~\func{map()} 函数的问题。
相关答案在练习的下一页。
答案的顺序和练习一致,以~\textbf{A$n$} 开头的答案,对应编号~$n$ 的练习。
一些练习没有答案,它们将用星号标记出来。
\section*{内容布局}
\begin{description}
\item[第~\ref{chap:intro} 章:\titleref{chap:intro}]
讨论了语言中可用的基本类型、变量和控制结构。
\item[第~\ref{chap:functions} 章:\titleref{chap:functions}]
会了解到函数,这是~Go 程序中的基本部件。
\item[第~\ref{chap:packages} 章:\titleref{chap:packages}]
会了解在包中整合函数和数据。同时也将了解如何对包编写文档和进行测试。
\item[第~\ref{chap:beyond} 章:\titleref{chap:beyond}]
会看到如何创建自定义的类型。同时也将了解~Go 中的内存分配。
\item[第~\ref{chap:interfaces} 章:\titleref{chap:interfaces}]
Go 不支持传统意义上的面向对象。在~Go 中接口是核心概念。
\item[第~\ref{chap:channels} 章:\titleref{chap:channels}]
通过~\func{go} 关键字,函数可以在不同的例程(叫做~goroutines)中执行。
通过~channel 来完成这些~goroutines 之间的通讯。
\item[第~\ref{chap:communication} 章:\titleref{chap:communication}]
最后一章展示了如何用接口来完成~Go 程序的其他部分。如何创建、读取和写入文件。
同时也简要了解一下网络的使用。
\end{description}
希望你喜欢本书,同时也喜欢上~Go 语言。
\section*{翻译}
本书的内容可随意取用。这里已经有相关翻译:
\begin{itemize}
\item 中文,邢星:\url{http://www.mikespook.com/learning-go/}
\item 俄文,Michael Davydenko
\end{itemize}
\begin{raggedright}
Miek Gieben,2011 -- \url{[email protected]}\\
邢星,2011 -- \url{[email protected]}
\end{raggedright}