Skip to content

Commit 1f8a9ae

Browse files
committed
give up GitBook turn to mmark
1 parent 5d03b03 commit 1f8a9ae

File tree

7 files changed

+117
-51
lines changed

7 files changed

+117
-51
lines changed

LICENSE

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
This work is licensed under the Attribution-NonCommercial-ShareAlike 3.0 Unported License. To
2+
view a copy of this license, visit
3+
<http://creativecommons.org/licenses/by-nc-sa/3.0/>
4+
or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California,
5+
94105, USA.

Makefile

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This file copie and modified from https://github.com/miekg/learninggo/blob/master/Makefile
2+
MMARK=mmark
3+
4+
all: learninggo.html
5+
6+
.PHONY: learninggo.html
7+
learninggo.html:
8+
$(MMARK) -html -head inc/head.html -css inc/learninggo.css learninggo.md > learninggo.html
9+
10+
.PHONY: learninggo.xml
11+
learninggo.xml:
12+
$(MMARK) learninggo.md > learninggo.xml
13+
14+
.PHONY: learninggo.txt
15+
learninggo.txt: learninggo.xml
16+
xml2rfc --v3 learninggo.xml
17+
18+
.PHONY: learninggo-2.xml
19+
learninggo-2.xml:
20+
$(MMARK) -2 learninggo.md > learninggo-2.xml
21+
22+
.PHONY: learninggo-2.txt
23+
learninggo-2.txt: learninggo-2.xml
24+
@# Using -n because it doesn't fully validate (RFC7749 is a limited format).
25+
xml2rfc -n learninggo-2.xml
26+
27+
.PHONY: ast
28+
ast:
29+
$(MMARK) -ast learninggo.md
30+
31+
.PHONY: test
32+
test:
33+
$(MMARK) -html learninggo.md
34+
35+
clean:
36+
rm -f learninggo.html

README.md

+10-47
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,17 @@
1-
# 前言
1+
# 学习 Go 语言
22

3-
> Go 是面向对象的语言吗?是也不是。” —— GO 开发者在 FAQ 中如是说到
3+
这是《学习 Go 语言》的第二版。
44

5-
## 关于本书
5+
这是一本关于来自 Google 的 Go 语言的快速入门。本书的第一版翻译自 Miek Gieben 开始于 2010 年的开源书籍 “Leaning Go”。从第二版开始,中文内容将脱离原版英文翻译,独立编写。
66

7-
《学习 Go 语言(第二版)》是一本关于来自 Google 的 Go 语言的快速入门。本书的第一版翻译自 Miek Gieben 开始于 2010 年的开源书籍 “Leaning Go”。从第二版开始,中文内容将脱离原版英文翻译,独立编写。并保持内容与 Go 语言的最新发行版本一致。
7+
但是尽管中文版本独立编写,仍然得感谢 [Miek Gieben](https://miek.nl)[Leaning Go](https://miek.nl/go/) 中构建起来的内容框架。
8+
而 Miek 用 Go 语言开发的 markdown 处理工具 [mmark](https://github.com/mmarkdown/mmark) 也将作为本开源书籍的生成工具。
89

9-
这本书的目标是为这个新的、革命性的语言提供一个 指南。所以本书将假设你已经在系统中安装了 Go,但读者仍然可以在附录中找到流行操作系统的安装指南。
10+
## 本书目标
1011

11-
## 读者
12+
这本书的目标是为 Go 语言这个年轻的、革命性的计算机语言提供一个快速指南。
1213

13-
这本书的目标读者是那些熟悉编程,并且了解某些编程语言,例如 C,C++,Java,PHP,Python 等等。请注意,这不是一本教你如何编程的书。本书的主要目标是教你如何使用 Go。学习某样新语言的最佳的方式就是通过编写程序来探索它。因此每章都包含了若干练习、答案和答案解析来让你熟悉这个语言。每个练习都有独立的编号。在练习编号后面的圆括号中标明了该题的难度。
14-
15-
1.
16-
2.
17-
3.
18-
19-
并且为了帮助索引,每个题目都有一个简短的标题。例如:
20-
21-
> Q1. (中) map 函数
22-
23-
编号 Q1 的这个问题是一道中等难度的关于 map\(\) 函数的练习。相关答案会在练习的下一页提供。答案的顺序和练习一致并使用类似的编号方式,以 A 开头并附带序号。例如:
24-
25-
> A1. map 函数
26-
27-
答案只是提供一种思路和参考,不是绝对的标准,也不是问题的最佳解。对于那些没有答案的练习,它们将用星号标记出来。
28-
29-
## 主要内容
30-
31-
1. 简介
32-
33-
本章将讨论语言中可用的基本类型、变量和控制结构
34-
35-
2. 函数与数据
36-
37-
函数是 Go 程序中的重要基本部件,通过函数可以对数据进行操作。同时本章也会对 Go 的垃圾自动回收和内存分配进行简要介绍
38-
39-
3. 包与模块
40-
41-
通过包可以整合功能相关的函数与数据,而模块可以更加方便的管理包。同时如何编写文档和进行单元测试也会是本章的重要内容
42-
43-
4. 接口
44-
45-
Go 语言的接口与传统意义的面相对象语言的接口大相径庭,而接口的设计是这个语言的核心思想之一
46-
47-
5. 并发
48-
49-
通过引入关键字 `go` ,Go 语言使并发程序的编写变得异常轻松。而在这个语言中的并发单元是一种轻线程 `goroutine`。而引入 `channel` 来在 `goroutine` 之间通讯也使得传统的并发编程任务变得轻松起来
50-
51-
6. 通讯
52-
53-
本章会对标准库中的文件读写、网络通讯等常用库进行简单介绍,并示范如何从头编写一个完整的 Go 程序
14+
## 编译
5415

16+
* 下载二进制版本的 mmark 或使用 `go get github.com/mmarkdown/mmark` 命令直接安装
17+
* 运行 `make` 生成 html 文件

SUMMARY.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Table of contents
1+
# 目录
22

3-
* [前言](README.md)
3+
* [前言](preface.md)
44

55
## 简介
66

7-
* [简介](jian-jie/jian-jie.md)
8-
* [官方文档](jian-jie/guan-fang-wen-dang.md)
7+
* [简介](introduction/introduction.md)
8+
* [官方文档](introduction/official-docs.md)
99

File renamed without changes.
File renamed without changes.

preface.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# 前言
2+
3+
> “Go 是面向对象的语言吗?是也不是。” —— GO 开发者在 FAQ 中如是说到
4+
5+
## 关于本书
6+
7+
《学习 Go 语言(第二版)》是一本关于来自 Google 的 Go 语言的快速入门。本书的第一版翻译自 Miek Gieben 开始于 2010 年的开源书籍 “Leaning Go”。从第二版开始,中文内容将脱离严格翻译原英文内容,重新编排和撰写。并保持内容与 Go 语言的最新发行版本一致。
8+
9+
这本书的目标是为这个新的、革命性的语言提供一个快速指南。所以本书将假设你已经在系统中安装了 Go,但读者仍然可以在附录中找到流行操作系统的安装指南。
10+
11+
本书使用 [Attribution-NonCommercial-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-nc-sa/3.0/) 授权。
12+
本书中的所有示例代码使用 Apache License version 2.0 协议授权。
13+
14+
## 致谢
15+
16+
感谢所有为英文原版 Leaning Go 和《学习 Go 语言》第一版作出任何贡献的朋友们。
17+
18+
无论如何得感谢 Miek Gieben 在 Leaning Go 中构建起来的良好的内容框架,和他使用 Go 语言开发的 markdown 处理工具 mmark。没有他的分享与贡献,本书的所有内容都无法成型。
19+
20+
## 读者
21+
22+
这本书的目标读者是那些有基本的编程概念,并且已经对解某些主流编程语言有所了解。主流编程语言包括但并不限于 C,C++,Java,PHP,Python 等等。请注意,这不是一本教你如何编程的书。本书的主要目标是教你如何使用 Go。学习某样新语言的最佳的方式就是通过编写程序来探索它。因此每章都包含了若干练习、答案和答案解析来让你熟悉这个语言。每个练习都有独立的编号。在练习编号后面的圆括号中标明了该题的难度。
23+
24+
1.
25+
2.
26+
3.
27+
28+
并且为了帮助索引,每个题目都有一个简短的标题。例如:
29+
30+
> Q1. (中) map 函数
31+
32+
编号 Q1 的这个问题是一道中等难度的关于 map\(\) 函数的练习。相关答案会在练习的下一页提供。答案的顺序和练习一致并使用类似的编号方式,以 A 开头并附带序号。例如:
33+
34+
> A1. map 函数
35+
36+
答案只是提供一种思路和参考,不是绝对的标准,也不是问题的最佳解。对于那些没有答案的练习,它们将用星号标记出来。
37+
38+
## 主要内容
39+
40+
1. 简介
41+
42+
本章将讨论语言中可用的基本类型、变量和控制结构
43+
44+
2. 函数与数据
45+
46+
函数是 Go 程序中的重要基本部件,通过函数可以对数据进行操作。同时本章也会对 Go 的垃圾自动回收和内存分配进行简要介绍
47+
48+
3. 包与模块
49+
50+
通过包可以整合功能相关的函数与数据,而模块可以更加方便的管理包。同时如何编写文档和进行单元测试也会是本章的重要内容
51+
52+
4. 接口
53+
54+
Go 语言的接口与传统意义的面相对象语言的接口大相径庭,而接口的设计是这个语言的核心思想之一
55+
56+
5. 并发
57+
58+
通过引入关键字 `go` ,Go 语言使并发程序的编写变得异常轻松。而在这个语言中的并发单元是一种轻线程 `goroutine`。而引入 `channel` 来在 `goroutine` 之间通讯也使得传统的并发编程任务变得轻松起来
59+
60+
6. 通讯
61+
62+
本章会对标准库中的文件读写、网络通讯等常用库进行简单介绍,并示范如何从头编写一个完整的 Go 程序

0 commit comments

Comments
 (0)