Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miekg/gobook
A complete introduction into Go, superseded by https://github.com/miekg/learninggo
https://github.com/miekg/gobook
book free go learning tex
Last synced: 9 days ago
JSON representation
A complete introduction into Go, superseded by https://github.com/miekg/learninggo
- Host: GitHub
- URL: https://github.com/miekg/gobook
- Owner: miekg
- Archived: true
- Created: 2011-05-03T18:46:49.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2018-09-29T21:45:08.000Z (about 6 years ago)
- Last Synced: 2024-08-01T16:45:05.585Z (3 months ago)
- Topics: book, free, go, learning, tex
- Language: TeX
- Homepage: https://miek.nl/go
- Size: 4.86 MB
- Stars: 875
- Watchers: 60
- Forks: 96
- Open Issues: 4
-
Metadata Files:
- Readme: README.mkd
Awesome Lists containing this project
README
"Learning Go" is now available online.
See and [this github repo](https://github.com/miekg/learninggo).
Note this book's source has been rewritten in [mmark](https://mmark.nl) and *that* source is available at
.> THIS REPO IS DEPRECATED.
# `Learning Go` - a free PDF for learning the Go language.
The book currently consists of the following chapters:
1. Introduction: Details the lineage of the language Go and shows the types, variables and control structures.
3. Functions: How to make and use functions.
4. Packages: Functions and data are grouped together in packages. Here you will see how to make your own package. How to unit test your package is also described.
5. Beyond the basics: Learn how to create your own data types and define functions on them (called methods in Go).
6. Interfaces: Go does not support Object Orientation in the traditional sense. In Go the central concept is interfaces.
7. Concurrency: With the go keyword functions can be started in separate routines (called goroutines). Communication with these goroutines is done via channels.
8. Communication : How to create/read/write from and to files. And how to do networking.Each chapter concludes with a number of exercises with answers to help you get some hands-on experience. Currently there are more than 30 exercises.
* See http://www.golang.org for the homepage of Go.
## Building the book
### Package Prerequisites
When building this book from LaTeX sources files you will need the following packages on Ubuntu (tested on 13.04).
* `inkscape`
* `gnumeric`
* `ttf-droid`
* `ttf-dejavu`
* `ttf-sazanami-gothic` (Japanese font)
* `ttf-arphic-ukai`
* `texlive-fonts-recommended`
* `texlive-extra-utils`
* `texlive-xetex`
* `texlive-latex-extra`
* `texlive-latex-recommended`
* `git-core`
* `GNU make`### Following is a shell script to automate the package prerequisites installation.
You can copy and paste the following code to your vt100 session to kickoff the chains of many packages installation.
```
# tested on Ubuntu 13.04
for i in inkscape \
gnumeric \
ttf-droid \
ttf-dejavu \
ttf-sazanami-gothic \
ttf-arphic-ukai \
texlive-fonts-recommended \
texlive-extra-utils \
texlive-xetex \
texlive-latex-extra \
texlive-latex-recommended \
latex-cjk-xcjk \
git-core \
make
do
sudo apt-get install $i -y
done
```### Checking out the `Learning Go` LaTeX sources.
Using http protocol.
```
me@ubuntu1204:~$git clone https://github.com/miekg/gobook.git
Cloning into 'gobook'...
remote: Counting objects: 4515, done.
remote: Compressing objects: 100% (1385/1385), done.
remote: Total 4515 (delta 3106), reused 4512 (delta 3104)
Receiving objects: 100% (4515/4515), 1.53 MiB | 1.17 MiB/s, done.
Resolving deltas: 100% (3106/3106), done.
me@ubuntu1204:~$
```Using git protocol if you already have github account setup.
```
git clone [email protected]:tjyang/gobook.git
```### Make the `Learning Go` Book
```
make
```### Download the prebuilt `Learning Go` book
Latest prebuilt pdf book [can be downloaded from http://www.miek.nl/downloads/Go/] [1]
[1]: http://miek.nl/files/go/Learning-Go-latest.pdf "Download the prebuilt Learning Go book in PDF format"