|
1 | 1 | # 2.1 こんにちは、Go
|
2 | 2 |
|
3 |
| -アプリケーションを書き始める前に、まず基本となるプログラムから始めます。家を建てようとする前に建物の基礎がどういったものかわからないのと同じように、プログラムの編集もどのように始めたらよいのかわからないものです。そのため、本章では、最も基本的な文法を学習し、Goプログラムを実行してみます。 |
| 3 | +アプリケーションを構築する前に、まず基本となるプログラムの書き方から始めます。建築の基礎を理解しないと家が建てられないように、基本的なプログラムを理解せずにはアプリケーションの構築もできません。そのため、本章では最も基本的な文法を学習し、Goプログラムを実行してみます。 |
4 | 4 |
|
5 | 5 | ## プログラム
|
6 | 6 |
|
7 |
| -これは伝統なのですが、大部分の言語を学習するときは、どのようにして`hello world`を出力するかというプログラムを書くことを学びます。 |
| 7 | +大半のプログラミング言語を学習するときは、まず`hello world`を出力するプログラムの書き方を学びます。 |
8 | 8 |
|
9 | 9 | 用意はいいですか?Let's Go!
|
10 | 10 |
|
|
21 | 21 | Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちはせかい
|
22 | 22 |
|
23 | 23 | ## 説明
|
24 |
| -まず我々はある概念を理解する必要があります。Goプログラムは`package`で構成されています。 |
| 24 | +まず我々は、Goプログラムは`package`で構成されている、ということを理解する必要があります。 |
25 | 25 |
|
26 |
| -`package <pkgName>`(我々の例では`package main`)の1行は現在のファイルがどのパッケージの属しているかを表しています。またパッケージ`main`はこれが独立して実行できるパッケージであることを示しています。コンパイル後実行可能ファイルが生成されます。`main`パッケージを除いて、他のパッケージは最後には`*.a`というファイルが生成され(パッケージファイルとも呼ばれます。)、`$GOPATH/pkg/$GOOS_$GOARCH`に出力されます。(Macでは`$GOPATH/pkg/darwin_amd64`になります。) |
| 26 | +`package <pkgName>`(我々の例では`package main`)の1行は現在のファイルがどのパッケージの属しているかを表しています。またパッケージ`main`はこれ自体が独立して実行できるパッケージであることを示しています。コンパイル後実行可能ファイルが生成されます。`main`パッケージを除いて、他のパッケージは最後には`*.a`というファイルが生成され(パッケージファイルとも呼ばれます。)、`$GOPATH/pkg/$GOOS_$GOARCH`に出力されます。(Macでは`$GOPATH/pkg/darwin_amd64`になります。) |
27 | 27 |
|
28 |
| ->それぞれの独立して実行できるGoプログラムは必ず`package main`の中に含まれます。この`main`パッケージには必ずインターフェースとなる`main`関数が含まれます。この関数には引数がなく、戻り値もありません。 |
| 28 | +>それぞれ独立して実行できるGoプログラムは必ず`package main`の中に含まれています。この`main`パッケージには必ずインターフェースとなる`main`関数が含まれます。この関数には引数がなく、戻り値もありません。 |
29 | 29 |
|
30 | 30 | `Hello, world...`と出力するために、我々は`Printf`関数を用います。この関数は`fmt`パッケージに含まれるため、我々は3行目でシステム固有の`fmt`パッケージを導入しています:`import "fmt"`。
|
31 | 31 |
|
32 |
| -パッケージの概念はPythonのpackageに似ています。これらには特別な利点があります:モジュール化(あなたのプログラムを複数のモジュールに分けることができます)と再利用性(各モジュールはすべて他のアプリケーションプログラムで再利用することができます)。ここではパッケージの概念を理解するにとどめ、あとで自分のパッケージを書くことにしましょう。 |
| 32 | +パッケージの概念はPythonのpackageに似ています。これには特別な利点があります:モジュール化(あなたのプログラムを複数のモジュールに分けることができます)と再利用性(各モジュールはすべて他のアプリケーションプログラムで再利用することができます)。ここではパッケージの概念を理解するにとどめ、あとで自分のパッケージを書くことにしましょう。 |
33 | 33 |
|
34 | 34 | 5行目では、キーワード`func`を通じて`main`関数を定義しています。関数の中身は`{}`(大括弧)の中に書かれます。我々が普段CやC++、Javaを書くのと同じです。
|
35 | 35 |
|
36 |
| -`main`関数にはなんの引数もありません。あとでどのように引数があったり、0個または複数の値を返す関数を書くか学ぶことにしましょう。 |
| 36 | +`main`関数にはなんの引数もありません。引数が存在する関数や、0個または複数の値を返す関数の書き方は後で学ぶことにしましょう。 |
37 | 37 |
|
38 | 38 | 6行目では、`fmt`パッケージに定義された`Printf`関数をコールします。この関数は`<pkgName>.<funcName>`の形式でコールされます。この点はPythonとよく似ています。
|
39 | 39 |
|
40 | 40 | >上述の通り、パッケージ名とパッケージが存在するディレクトリは異なっていてもかまいません。ここでは`<pkgName>`がディレクトリ名ではなく`package <pkgName>`で宣言されるパッケージ名とします。
|
41 | 41 |
|
42 |
| -最後に、我々が出力した内容に多くの非ASCIIコードが含まれていることにお気づきかもしれません。実際、Goは生まれながらにしてUTF-8をサポートしており、いかなる文字コードも直接出力することができます。UTF-8の中の任意のコードポイントを識別子にしても構いません。 |
| 42 | +最後に、出力した内容には多くの非ASCIIコードが含まれていることにお気づきかもしれません。実際、Goは生まれながらにしてUTF-8をサポートしており、いかなる文字コードも直接出力することができます。UTF-8の中の任意のコードポイントを識別子にしても構いません。 |
43 | 43 |
|
44 | 44 |
|
45 | 45 | ## 結論
|
|
0 commit comments