序章

「Hello、World!」 プログラムは、コンピュータプログラミングにおける古典的で昔ながらの伝統です。 これは初心者向けのシンプルで完全な最初のプログラムであり、環境が適切に構成されていることを確認するための良い方法です。

このチュートリアルでは、Goでこのプログラムを作成する手順を説明します。 ただし、プログラムをより面白くするために、従来の「Hello、World!」を変更します。 ユーザーに名前を尋ねるようにプログラムします。 次に、挨拶でその名前を使用します。 チュートリアルが終了すると、実行すると次のようなプログラムが作成されます。

Output
Please enter your name. Sammy Hello, Sammy! I'm Go!

前提条件

このチュートリアルを開始する前に、コンピューターにローカルGo開発環境をセットアップする必要があります。 これは、次のいずれかのチュートリアルに従って設定できます。

ステップ1—基本的な「Hello、World!」を作成するプログラム

「Hello、World!」を書くためにプログラム、などのコマンドラインテキストエディタを開きます nano 新しいファイルを作成します。

  1. nano hello.go

ターミナルウィンドウにテキストファイルが開いたら、プログラムを入力します。

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 コマンドの後に、作成したファイルの名前が続きます。

  1. go run hello.go

プログラムが実行され、次の出力が表示されます。

Output
Hello, World!

実際に何が起こったのかを調べてみましょう。

Goプログラムは、実行する前にコンパイルする必要があります。 電話するとき go run この場合はファイルの名前で hello.gogo コマンドは、アプリケーションをコンパイルしてから、結果のバイナリを実行します。 コンパイル済みプログラミング言語で記述されたプログラムの場合、コンパイラはプログラムのソースコードを取得し、別の種類の低レベルコード(マシンコードなど)を生成して実行可能プログラムを生成します。

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 編集者:

  1. nano greeting.go

まず、次のコードを追加します。これにより、ユーザーは名前を入力するように求められます。

あいさつ.go
package main

import (
	"fmt"
)

func main() {
  fmt.Println("Please enter your name.")
}

もう一度、あなたは fmt.Println 画面にテキストを印刷する関数。

次に、強調表示された行を追加して、ユーザーの入力を保存します。

あいさつ.go
package main

import (
	"fmt"
)

func main() {
  fmt.Println("Please enter your name.")
  var name string
}

The var name string 行は、を使用して新しい変数を作成します var キーワード。 変数に名前を付けます name、そしてそれはタイプになります string.

次に、強調表示された行を追加して、ユーザーの入力をキャプチャします。

あいさつ.go
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は、プログラムの実行が終了するまで、その文字列をコンピュータのメモリに保存します。

最後に、プログラムに次の強調表示された行を追加して、出力を印刷します。

あいさつ.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. 出力は、期待したものと正確に一致しない場合があります。

Output
Please enter your name. Sammy Hi, Sammy ! I'm Go!

それ以外の Hi, Sammy! I'm Go!、名前の直後に改行があります。

プログラムは、キーストロークのすべてをキャプチャしました。 ENTER プログラムに続行するように指示するために押したキー。 文字列で、 ENTER キーは、改行を作成する特殊文字を作成します。 プログラムの出力は、あなたが指示したとおりに実行されます。 入力したテキスト(新しい行を含む)が表示されます。 期待した出力ではありませんが、追加の機能で修正できます。

を開きます greeting.go エディター内のファイル:

  1. nano greeting.go

プログラムで次の行を見つけます。

あいさつ.go
...
fmt.Scanln(&name)
...

その直後に次の行を追加します。

あいさつ.go
name = strings.TrimSpace(name)

これは TrimSpace Goの標準ライブラリからの関数 strings パッケージ、でキャプチャした文字列 fmt.Scanln. The strings.TrimSpace 関数は、文字列の最初と最後から、新しい行を含むすべてのスペース文字を削除します。 この場合、を押したときに作成された文字列の最後にある改行文字が削除されます ENTER.

を使用するには strings プログラムの上部にインポートする必要があるパッケージ。

プログラムで次の行を見つけます。

あいさつ.go
import (
	"fmt"
)

次の行を追加して、 strings パッケージ:

あいさつ.go
import (
	"fmt"
	"strings"
)

これで、プログラムには次のものが含まれます。

あいさつ.go
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 ファイルを保存するように求められたら。

プログラムを再度実行します。

  1. go run greeting.go

今回は、名前を入力してを押した後 ENTER、期待される出力が得られます。

Output
Please enter your name. Sammy Hi, Sammy! I'm Go!

これで、ユーザーからの入力を受け取り、それを画面に出力するGoプログラムができました。

結論

このチュートリアルでは、「Hello、World!」を作成しました。 ユーザーからの入力を受け取り、結果を処理し、出力を表示するプログラム。 使用する基本的なプログラムができたので、プログラムをさらに拡張してみてください。 たとえば、ユーザーの好きな色を尋ね、プログラムにその好きな色が赤であると言わせます。 これと同じ手法を使用して、単純なMad-Libプログラムを作成することもできます。