Goで最初のプログラムを作成する方法
序章
「Hello、World!」 プログラムは、コンピュータプログラミングにおける古典的で昔ながらの伝統です。 これは初心者向けのシンプルで完全な最初のプログラムであり、環境が適切に構成されていることを確認するための良い方法です。
このチュートリアルでは、Goでこのプログラムを作成する手順を説明します。 ただし、プログラムをより面白くするために、従来の「Hello、World!」を変更します。 ユーザーに名前を尋ねるようにプログラムします。 次に、挨拶でその名前を使用します。 チュートリアルが終了すると、実行すると次のようなプログラムが作成されます。
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Go!
前提条件
このチュートリアルを開始する前に、コンピューターにローカルGo開発環境をセットアップする必要があります。 これは、次のいずれかのチュートリアルに従って設定できます。
- GoをインストールしてmacOSにローカルプログラミング環境をセットアップする方法
- GoをインストールしてUbuntu18.04にローカルプログラミング環境をセットアップする方法
- GoをインストールしてWindows10にローカルプログラミング環境をセットアップする方法
ステップ1—基本的な「Hello、World!」を作成するプログラム
「Hello、World!」を書くためにプログラム、などのコマンドラインテキストエディタを開きます nano
新しいファイルを作成します。
- nano hello.go
ターミナルウィンドウにテキストファイルが開いたら、プログラムを入力します。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
コードのさまざまなコンポーネントを分解してみましょう。
package
このファイルが属するコードバンドルを定義するGoキーワードです。 フォルダごとに1つのパッケージしか存在できず、それぞれ .go
fileは、ファイルの先頭で同じパッケージ名を宣言する必要があります。 この例では、コードはに属します main
パッケージ。
import
は、このファイルで使用する他のパッケージをGoコンパイラに通知するGoキーワードです。 ここでインポートします fmt
標準ライブラリに付属するパッケージ。 The fmt
パッケージは、開発時に役立つフォーマットおよび印刷機能を提供します。
fmt.Println
Go 関数であり、 fmt
パッケージ。画面にテキストを印刷するようにコンピューターに指示します。
あなたは fmt.Println
次のような文字のシーケンスによって機能します "Hello, World!"
、引用符で囲みます。 引用符で囲まれた文字は、文字列と呼ばれます。 The fmt.Println
関数は、プログラムの実行時にこの文字列を画面に出力します。
保存して終了 nano
入力して CTRL + X
、ファイルを保存するように求められたら、を押します Y
.
これで、プログラムを試すことができます。
ステップ2—Goプログラムの実行
「Hello、World!」でプログラムが作成されたら、プログラムを実行する準備が整います。 を使用します go
コマンドの後に、作成したファイルの名前が続きます。
- go run hello.go
プログラムが実行され、次の出力が表示されます。
OutputHello, World!
実際に何が起こったのかを調べてみましょう。
Goプログラムは、実行する前にコンパイルする必要があります。 電話するとき go run
この場合はファイルの名前で hello.go
、 go
コマンドは、アプリケーションをコンパイルしてから、結果のバイナリを実行します。 コンパイル済みプログラミング言語で記述されたプログラムの場合、コンパイラはプログラムのソースコードを取得し、別の種類の低レベルコード(マシンコードなど)を生成して実行可能プログラムを生成します。
Goアプリケーションには main
パッケージと正確に1つ main()
アプリケーションのエントリポイントとして機能する関数。 The main
関数は引数をとらず、値を返しません。 代わりに、パッケージを実行可能パッケージとしてコンパイルする必要があることをGoコンパイラに通知します。
コンパイルされると、コードは次のように入力して実行されます main()
の機能 main
パッケージ。 行を実行します fmt.Println("Hello, World!")
呼び出しによって fmt.Println
関数。 の文字列値 Hello, World!
次に、関数に渡されます。 この例では、文字列 Hello, World!
メソッドに渡される値であるため、引数とも呼ばれます。
のいずれかの側にある引用符 Hello, World!
文字列の開始位置と終了位置をGoに指示するために使用するため、画面には印刷されません。
このステップでは、動作する「Hello、World!」を作成しました。 Goでプログラムします。 次のステップでは、プログラムをよりインタラクティブにする方法を探ります。
ステップ3—ユーザー入力のプロンプト
プログラムを実行するたびに、同じ出力が生成されます。 このステップでは、プログラムに追加して、ユーザーに名前の入力を求めることができます。 次に、それらの名前を出力で使用します。
既存のプログラムを変更する代わりに、という新しいプログラムを作成します greeting.go
とともに nano
編集者:
- nano greeting.go
まず、次のコードを追加します。これにより、ユーザーは名前を入力するように求められます。
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
}
もう一度、あなたは fmt.Println
画面にテキストを印刷する関数。
次に、強調表示された行を追加して、ユーザーの入力を保存します。
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
}
The var name string
行は、を使用して新しい変数を作成します var
キーワード。 変数に名前を付けます name
、そしてそれはタイプになります string
.
次に、強調表示された行を追加して、ユーザーの入力をキャプチャします。
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
}
The fmt.Scanln
メソッドは、新しい行で終わるキーボードからの入力を待つようにコンピューターに指示します。\n
)、 キャラクター。 これによりプログラムが一時停止し、ユーザーは任意のテキストを入力できるようになります。 ユーザーがを押すと、プログラムは続行されます ENTER
キーボードのキー。 を含むすべてのキーストローク ENTER
キーストロークは、キャプチャされ、文字列に変換されます。
これらの文字をプログラムの出力で使用したいので、書き込みによってこれらの文字を変数という文字列に保存します。 name
. Goは、プログラムの実行が終了するまで、その文字列をコンピュータのメモリに保存します。
最後に、プログラムに次の強調表示された行を追加して、出力を印刷します。
package main
import (
"fmt"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
今回は、を使用する代わりに fmt.Println
再び方法、あなたは使用しています fmt.Printf
. The fmt.Printf
関数は文字列を取り、特別な印刷動詞を使用して、(%s
)、それはの値を注入します name
文字列に。 これは、Goが文字列補間をサポートしていないためです。これにより、変数に割り当てられた値を取得して、文字列内に配置できます。
保存して終了 nano
を押すことによって CTRL + X
、を押します Y
ファイルを保存するように求められたら。
次に、プログラムを実行します。 名前の入力を求められるので、名前を入力してを押します ENTER
. 出力は、期待したものと正確に一致しない場合があります。
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Go!
それ以外の Hi, Sammy! I'm Go!
、名前の直後に改行があります。
プログラムは、キーストロークのすべてをキャプチャしました。 ENTER
プログラムに続行するように指示するために押したキー。 文字列で、 ENTER
キーは、改行を作成する特殊文字を作成します。 プログラムの出力は、あなたが指示したとおりに実行されます。 入力したテキスト(新しい行を含む)が表示されます。 期待した出力ではありませんが、追加の機能で修正できます。
を開きます greeting.go
エディター内のファイル:
- nano greeting.go
プログラムで次の行を見つけます。
...
fmt.Scanln(&name)
...
その直後に次の行を追加します。
name = strings.TrimSpace(name)
これは TrimSpace
Goの標準ライブラリからの関数 strings
パッケージ、でキャプチャした文字列 fmt.Scanln
. The strings.TrimSpace
関数は、文字列の最初と最後から、新しい行を含むすべてのスペース文字を削除します。 この場合、を押したときに作成された文字列の最後にある改行文字が削除されます ENTER
.
を使用するには strings
プログラムの上部にインポートする必要があるパッケージ。
プログラムで次の行を見つけます。
import (
"fmt"
)
次の行を追加して、 strings
パッケージ:
import (
"fmt"
"strings"
)
これで、プログラムには次のものが含まれます。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println("Please enter your name.")
var name string
fmt.Scanln(&name)
name = strings.TrimSpace(name)
fmt.Printf("Hi, %s! I'm Go!", name)
}
保存して終了 nano
. プレス CTRL + X
、次にを押します Y
ファイルを保存するように求められたら。
プログラムを再度実行します。
- go run greeting.go
今回は、名前を入力してを押した後 ENTER
、期待される出力が得られます。
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Go!
これで、ユーザーからの入力を受け取り、それを画面に出力するGoプログラムができました。
結論
このチュートリアルでは、「Hello、World!」を作成しました。 ユーザーからの入力を受け取り、結果を処理し、出力を表示するプログラム。 使用する基本的なプログラムができたので、プログラムをさらに拡張してみてください。 たとえば、ユーザーの好きな色を尋ね、プログラムにその好きな色が赤であると言わせます。 これと同じ手法を使用して、単純なMad-Libプログラムを作成することもできます。