Skip to content

Commit 4d094bd

Browse files
committed
2 parents 79ab21b + 6892707 commit 4d094bd

File tree

409 files changed

+377
-311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

409 files changed

+377
-311
lines changed

LANGS.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
* [English](en/)
2+
* [中文](zh/)
3+
* [日本語](ja/)

README.md

+13-30
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,20 @@
1-
# 《Go Web 编程》
2-
这本书目前有多个版本:
1+
# Mulit Language Version
2+
* [English](en/)
3+
* [中文](zh/)
4+
* [日本語](ja/)
35

4-
[中文开始阅读](<https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/preface.md>)
6+
# Donate
57

6-
[日文开始阅读](<https://github.com/astaxie/build-web-application-with-golang/blob/master/ja/ebook/preface.md>)
7-
8-
[English Version](<https://github.com/astaxie/build-web-application-with-golang/blob/master/en/eBook/preface.md>)
9-
10-
目前这本书已经出版,如果你觉得内容还可以,你可以通过下面几个途径购买,谢谢支持:
11-
12-
- [chinapub](http://product.china-pub.com/3767290)
13-
- [当当网](http://product.dangdang.com/product.aspx?product_id=23231404)
14-
- [京东](http://book.jd.com/11224644.html)
15-
- [Amazon](http://www.amazon.cn/Go-Web%E7%BC%96%E7%A8%8B-%E8%B0%A2%E5%AD%9F%E5%86%9B/dp/B00CHWVAHQ/ref=sr_1_1?s=books&ie=UTF8&qid=1369323453&sr=1-1)
16-
17-
![](ebook/images/ebook.jpg)
18-
19-
# 通过捐款支持本书
20-
如果你喜欢这本《Go Web编程》的话, 可以通过捐款的方式, 支持作者继续更新本书或者做出其他更多好玩好用的开源应用: 比如为本书修补漏洞、添加更多有趣的章节, 或者发行有更多更棒内容的下一版,或者改善beego等等。
21-
22-
支付宝扫描捐款: ![](ebook/images/alipay.png)
8+
AliPay: <img src="zh/images/alipay.png" alt="alipay" width="100" height="100">
239

2410
English Donate:[donate](http://beego.me/donate)
2511

26-
## 交流
27-
欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群
12+
## Community
13+
QQ群:386056972
2814

29-
论坛交流[http://bbs.go-china.org/](http://bbs.go-china.org/)
15+
BBS[http://golanghome.com/](http://golanghome.com/)
3016

31-
## 致谢
32-
首先要感谢Golang-China的QQ群102319854(已满),请加2群(384414723),里面的每一个人都很热心,同时要特别感谢几个人
17+
## Acknowledgments
3318

3419
- [四月份平民](https://plus.google.com/110445767383269817959) (review代码)
3520
- [Hong Ruiqi](https://github.com/hongruiqi) (review代码)
@@ -39,11 +24,9 @@ English Donate:[donate](http://beego.me/donate)
3924
- [polaris](https://github.com/polaris1119)(review书)
4025
- [雨痕](https://github.com/qyuhen)(review第二章)
4126

42-
## 授权许可
43-
除特别声明外,本书中的内容使用[CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)(创作共用 署名-相同方式共享3.0许可协议)授权,代码遵循[BSD 3-Clause License](<https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md>)(3项条款的BSD许可协议)。
27+
## License
28+
Book License: [CC BY-SA 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/)
4429

45-
## 开始阅读
46-
[开始阅读](<https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/preface.md>)
30+
Code License: [BSD 3-Clause License](<https://github.com/astaxie/build-web-application-with-golang/blob/master/LICENSE.md>)
4731

4832

49-
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/44c98c9d398b8319b6e87edcd3e34144 "githalytics.com")](http://githalytics.com/astaxie/build-web-application-with-golang)
File renamed without changes.

images

-1
This file was deleted.
File renamed without changes.

ja/ebook/01.1.md renamed to ja/01.1.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,16 @@ PATHを設定します。`export PATH=$PATH:$GO_INSTALL_DIR/go/bin`
9696

9797
もしgoのUsage情報が現れた場合は、goはすでにインストールされています。もしこのコマンドが存在しないと出てきた場合は、自分のPATH環境変数の中にgoのインストールディレクトリが含まれているか確認してください。
9898

99-
### Windows インストール
99+
### Windows インストール ###
100100

101-
[ダウンロードURL][downlink]に接続し、32bitシステムはgo1.0.3.windows-386.msiをダウンロードします。64bitシステムであればgo1.0.3.windows-amd64.msiをダウンロードします。ファイルをダブルクリックして、デフォルトのまま「次へ」をクリックします。この時goはすでにあなたのシステムにインストールされています。デフォルトでインストール後の環境変数には`c:/go/bin`が追加されています。cmdを開いて、`go`と入力します
101+
[Google Code ダウンロードページ][downlink]に接続し、32bit の場合は名前に windows-386 を含む msi パッケージをダウンロードします。64bit であれば名前に windows-amd64 を含むものをダウンロードします。ダウンロード後実行しますが、デフォルトのインストールフォルダである C:\Go\を変更してはいけません。他の場所にインストールしてしまうと、あなたが書いた Go コードが実行できなくなってしまうかもしれません。インストールが終わるとデフォルトで環境変数 Path に Go のインストールフォルダの下にある bin フォルダ `C:\Go\bin\` が追加され、Go のインストールフォルダである `C:\Go\` の値が環境変数 GOROOT に追加されます
102102

103-
macインストール成功の画像で、インストールが成功します。
103+
** インストールが成功しているか確認する **
104+
105+
「ファイル名を指定して実行」に `cmd` を入力することでコマンドラインツールを開きます。プロンプトで`go`と入力することで Usage 情報が確認できるか確かめることができます。`cd %GOROOT%` を入力すると、Go のインストールフォルダに入れるか確認できます。どちらも成功していれば、インストールに成功しています。
106+
107+
インストールに成功していなければ、環境変数 Path と GOROOT の値を確認してください。もし存在しなければアンインストールの上再インストールし、存在していればコンピュータを再起動し、上の手順を再度お試しください。
104108

105-
もしGoのUsage情報が現れたら、Goはすでにインストールされています。もしこのコマンドが存在しないと出た場合は自分のPATH環境変数にGoのインストールディレクトリが含まれるか確認してください。
106109

107110
## サードパーティツールのインストール
108111
### GVM
File renamed without changes.

ja/ebook/01.3.md renamed to ja/01.3.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
array_windows.go
3434
array_freebsd.go
3535

36-
`go build`の際、システム名の末尾のファイルから選択的にコンパイルすることができます(linux、darwin、windows、freebsd
36+
`go build`の際、システム名の末尾のファイルから選択的にコンパイルすることができます(Linux、Darwin、Windows、Freebsd
3737

3838
## go clean
3939

ja/ebook/01.4.md renamed to ja/01.4.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
"env": { "GOPATH": "$HOME/golang:$GS_GOPATH" }
167167
}
168168

169-
`$GS_GOPATH` は gosublime の仮想的な環境変数です。自動的に`.go`ファイルが存在する `~/go/src` を探し出すことで、 `~/go/` をプロジェクトのパスと推測し、自動的に `GOPATH` を適用します。
169+
`$GS_GOPATH` は gosublime の仮想的な環境変数です。自動的に`.go`ファイルが存在する `~/go/src` を探し出すことで、 `~/go/` をプロジェクトのパスと推測し、自動的に `GOPATH` を適用します。(注意:このような方法ではsublimeにおいてオリジナルのGOPATHを上書きしてしまいます。もしこの設定でエラーが発生した場合は、GOPATHに関連した問題が発生していることになります)
170170

171171
もうひとつは、sublime プロジェクトの保存です。 project_name.sublime-project を修正して項目を追加します
172172

@@ -226,7 +226,7 @@ Vimはviから発展したテキストエディタです。コード補完、コ
226226

227227
5. おめでとうございます。インストール完了です。あなたは今から`:e main.go`でGoで開発する面白さを体験することができます。
228228

229-
より多くのVIM 設定は[リンク](http://monnand.me/p/vim-golang-environment/zhCN/)をご参照ください。
229+
より多くのVIMの設定は[リンク](http://monnand.me/p/vim-golang-environment/zhCN/)をご参照ください。
230230

231231
## Emacs
232232
Emacsは伝説の神器です。彼女はエディタであるだけでなく、統合環境でもあります。または開発環境の集大成と呼んでもよいかもしれません。これらの機能はユーザの身を万能のオペレーティングシステムに置きます。
@@ -457,4 +457,4 @@ Javaに親しい読者はideaには不慣れだと思います、ideaはプラ
457457
## links
458458
* [目次](<preface.md>)
459459
* 前へ: [Goのコマンド](<01.3.md>)
460-
* 次へ: [概要](<01.5.md>)
460+
* 次へ: [まとめ](<01.5.md>)

ja/ebook/01.5.md renamed to ja/01.5.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 1.5 概要
1+
# 1.5 まとめ
22

33
この章では主にどのようにしてGoをインストールするかについてご紹介しました。Goは3つの種類のインストール方法があります:ソースコードインストール、標準パッケージインストール、サードパーティツールによるインストールです。インストール後開発環境を整え、ローカルの`$GOPATH`を設定します。`$GOPATH`設定を通じて読者はプロジェクトを作成することができます。次にどのようにプロジェクトをコンパイルするのか説明しました。アプリケーションのインストールといった問題はたくさんのGoコマンドを使用する必要があります。そのため、Goで日常的に用いられるコマンドツールについてもご説明しました。コンパイル、インストール、整形、テストなどのコマンドです。最後にGoの開発ツールについてご紹介しました。現在多くのGoの開発ツールには:LiteIDE、sublime、VIM、Emacs、Eclipse、Ideaといったツールがあります。読者は自分が一番慣れ親しんだツールを設定することができます。便利なツールで素早くGoアプリケーションを開発できるよう願っています。
44

ja/ebook/02.0.md renamed to ja/02.0.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ GoはCに似たコンパイラ型言語です。ですが、このコンパイ
1515

1616
## links
1717
* [目次](<preface.md>)
18-
* 前へ: [第一章概要](<01.5.md>)
18+
* 前へ: [第一章まとめ](<01.5.md>)
1919
* 次へ: [こんにちは、Go](<02.1.md>)
File renamed without changes.

ja/ebook/02.2.md renamed to ja/02.2.md

+9-6
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Goではbool値の型は`bool`です。値は`true`もしくは`false`です。
103103

104104
>注意しなければならないのは、これらの型の変数間は相互に代入または操作を行うことができないということです。コンパイル時にコンパイラはエラーを発生させます。
105105
>
106-
>下のコードはエラーが発生します。
106+
>下のコードはエラーが発生します。:invalid operation: a + b (mismatched types int8 and int32)
107107
>
108108
>> var a int8
109109
@@ -135,7 +135,7 @@ Goではbool値の型は`bool`です。値は`true`もしくは`false`です。
135135
frenchHello = "Bonjour" // 通常の代入
136136
}
137137

138-
Goの文字列は変更することができません。例えば下のコードはコンパイル時にエラーが発生します。
138+
Goの文字列は変更することができません。例えば下のコードはコンパイル時にエラーが発生します。:cannot assign to s[0]
139139

140140
var s string = "hello"
141141
s[0] = 'c'
@@ -168,7 +168,10 @@ Goでは`+`演算子を使って文字列を連結することができます:
168168
m := `hello
169169
world`
170170

171-
`` ` `` で括られた文字列はRaw文字列です。すなわち、文字列はコード内の形式がそのままプリント時の形式になります。文字列の変更はありません。改行はそのまま出力されます。
171+
`` ` `` で括られた文字列はRaw文字列です。すなわち、文字列はコード内の形式がそのままプリント時の形式になります。文字列の変更はありません。改行はそのまま出力されます。例えばこの例では以下のように出力されます:
172+
173+
hello
174+
world
172175

173176
### エラー型
174177
Goにはビルトインの`error`型があります。専らエラー情報の処理に使用されます。Goの`package`の中にはエラー処理を行う`errors`というパッケージがあります。
@@ -383,7 +386,7 @@ sliceには便利な操作があります
383386
下のコードをご覧ください。`map`の読み込みと代入は`slice`と似ています。`key`を通して操作します。ただ、`slice``index``int`型のみになります。`map`には多くの型があります。`int`でもかまいませんし、`string``==``!=`演算子が定義されている全ての型でもかまいません。
384387

385388
// keyを文字列で宣言します。値はintとなるディクショナリです。この方法は使用される前にmakeで初期化される必要があります。
386-
var numbers map[string] int
389+
var numbers map[string]int
387390
// もうひとつのmapの宣言方法
388391
numbers := make(map[string]int)
389392
numbers["one"] = 1 //代入
@@ -407,7 +410,7 @@ mapを使う段階で注意しなければならないことがいくつかあ
407410
`delete``map`の要素を削除します:
408411

409412
// ディクショナリを初期化します。
410-
rating := map[string]float32 {"C":5, "Go":4.5, "Python":4.5, "C++":2 }
413+
rating := map[string]float32{"C":5, "Go":4.5, "Python":4.5, "C++":2 }
411414
// mapは2つの戻り値があります。2つ目の戻り値では、もしkeyが存在しなければ、okはfalseに、存在すればokはtrueになります。
412415
csharpRating, ok := rating["C#"]
413416
if ok {
@@ -445,7 +448,7 @@ mapを使う段階で注意しなければならないことがいくつかあ
445448

446449
図2.5 makeとnewの低レイヤでのメモリの割り当て
447450

448-
"ゼロ値"というのは何もカラの値ではありません。これは一種の"変数が埋めらる前"のデフォルト値であり、通常は0です。
451+
"ゼロ値"というのは何も空の値ではありません。これは一種の"変数が埋めらる前"のデフォルト値であり、通常は0です。
449452
それぞれの型のゼロ値は以下の通りです
450453

451454
int 0

ja/ebook/02.3.md renamed to ja/02.3.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 2.3 フローと関数
22
この節ではGoの中のフロー制御と関数操作についてご紹介します。
33
## フロー制御
4-
フロー制御はプログラム言語の中の最も偉大な発明です。なぜならこれがあるだけで、あなたはとても簡単なフローの記述でとても複雑なロジックを表現できるからです。フロー制御は3つの部分から成ります:条件判断、ループ制御及び無条件ジャンプです。
4+
フロー制御はプログラム言語の中の最も偉大な発明です。なぜならこれがあるだけで、あなたはとても簡単なフローの記述でとても複雑なロジックを表現できるからです。Goではフロー制御は3つの部分から成ります:条件判断、ループ制御及び無条件ジャンプです。
55
### if
66
`if`はあらゆるプログラミング言語の中で最もよく見かけるものかもしれません。この文法は大雑把に言えば:もし条件を満足しなければ何々を行い、そうでなければまたもう一つ別のことをやるということです。
77

@@ -50,7 +50,7 @@ Goには`goto`句があります- - ぜひ賢く使ってください。`goto`
5050
>タグの名前は大文字小文字を区別します。
5151
5252
### for
53-
Goにで最も協力なロジックコントロールといえば`for`です。これはループでデータを読むのに使えます。`while`でロジックをコントロールしても構いません。イテレーション操作も行えます。文法は以下の通りです:
53+
Goにで最も強力なロジックコントロールといえば`for`です。これはループでデータを読むのに使えます。`while`でロジックをコントロールしても構いません。イテレーション操作も行えます。文法は以下の通りです:
5454

5555
for expression1; expression2; expression3 {
5656
//...
@@ -369,7 +369,7 @@ Goでは関数も変数の一種です。`type`を通して定義します。こ
369369

370370
type typeName func(input1 inputType1 , input2 inputType2 [, ...]) (result1 resultType1 [, ...])
371371

372-
関すを型として扱うことにメリットはあるのでしょうか?ではこの型の関数を値として渡してみましょう。以下の例をご覧ください。
372+
関数を型として扱うことにメリットはあるのでしょうか?ではこの型の関数を値として渡してみましょう。以下の例をご覧ください。
373373

374374
package main
375375
import "fmt"
@@ -415,7 +415,7 @@ Goでは関数も変数の一種です。`type`を通して定義します。こ
415415

416416
### PanicとRecover
417417

418-
GoにはJavaのような例外処理はありません。例外を投げないのです。その代わり、`panic``recover`を使用します。ぜひ覚えておいてください、これは最後の手段として使うことを。つまり、あなたのコードにあってはなりません。もしくは`panic`を極力減らしてください。これは非常に協力なツールです。賢く使ってください。では、どのように使うのでしょうか?
418+
GoにはJavaのような例外処理はありません。例外を投げないのです。その代わり、`panic``recover`を使用します。ぜひ覚えておいてください、これは最後の手段として使うことを。つまり、あなたのコードにあってはなりません。もしくは`panic`を極力減らしてください。これは非常に強力なツールです。賢く使ってください。では、どのように使うのでしょうか?
419419

420420
Panic
421421
>ビルトイン関数です。オリジナルの処理フローを中断させることができます。パニックが発生するフローの中に入って関数`F``panic`をコールします。このプロセスは継続して実行されます。一旦`panic``goroutine`が発生すると、コールされた関数がすべて返ります。この時プログラムを抜けます。パニックは直接`panic`をコールします。実行時にエラーを発生させてもかまいません。例えば配列の境界を超えてアクセスする、などです。
@@ -468,7 +468,7 @@ Goのコードを書いている時は、importコマンドによってパッケ
468468

469469
fmt.Println("hello world")
470470

471-
上のfmtはGo言語の標準ライブラリです。実はgorootの下にこのモジュールが加えられています。当然Goのインポートは以下のような2つの方法で自分の書いたモジュールを追加することができます:
471+
上のfmtはGo言語の標準ライブラリです。実は`GOROOT`環境変数で指定されたディレクトリの下にこのモジュールが加えられています。当然Goのインポートは以下のような2つの方法で自分の書いたモジュールを追加することができます:
472472

473473
1. 相対パス
474474

File renamed without changes.

0 commit comments

Comments
 (0)