Site Overlay

はじめてのプログラム

伝統的に、どのプログラミング言語でも最初に書くプログラムは「Hello World」プログラムと呼ばれ、ターミナルに Hello World とだけ出力するプログラムです。 Go を使って書いてみましょう。

まず、プログラムを格納するための新しいフォルダーを作成します。 ~/src/golang-book/chapter2 という名前のフォルダを作成します。 (ここで~はあなたのホームディレクトリを意味します。) ターミナルから以下のコマンドを入力することで実行することができます。

mkdir src/golang-bookmkdir src/golang-book/chapter2

テキストエディターで次のように入力します。

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

ここに表示されているものと同じファイルであることを確認し、先ほど作成したフォルダーに main.go という名前で保存してください。 新しいターミナルを開き、次のように入力します。

cd src/golang-book/chapter2go run main.go

ターミナルにHello Worldが表示されているはずです。 go runコマンドは、後続のファイル(スペースで区切られています)を取り込んで、一時ディレクトリに保存された実行ファイルにコンパイルし、プログラムを実行するものです。 もし、Hello Worldが表示されなかったら、プログラムを入力するときに間違えたのかもしれません。 Goコンパイラは、その間違いがどこにあるのかヒントを与えてくれるでしょう。 他のコンパイラと同様に、Goコンパイラは非常に杓子定規で、ミスに対して寛容ではありません。

How to Read a Go Program

このプログラムをもう少し詳しく見てみましょう。 囲碁のプログラムは上から下へ、左から右へと読みます。 (本のように) 最初の行はこうなっています。

package main

これは「パッケージ宣言」として知られています。 すべての Go プログラムはパッケージ宣言で始まらなければなりません。 パッケージはコードを整理して再利用するためのGoの方法です。 Go プログラムには、実行ファイルとライブラリの 2 種類があります。 実行可能なアプリケーションは、ターミナルから直接実行できる種類のプログラムです。 (Windows では .exe で終わります) ライブラリはコードの集まりで、他のプログラムで使えるようにパッケージ化されたものです。 ライブラリについては後で詳しく説明しますが、今はどのようなプログラムでもこの行を含めるようにしてください。

次の行は空白行です。 コンピュータは改行を特殊な文字(または複数の文字)で表現します。 改行、スペース、タブはホワイトスペースとして知られています (見えないからです)。 Goはほとんど空白を気にしませんが、私たちはプログラムを読みやすくするために空白を使います。 (この行を削除しても、プログラムはまったく同じように動作します。)

では、次のようになります。

import "fmt"

import キーワードは、プログラムで使用する他のパッケージからコードを取り込む方法です。 fmt パッケージ (format の省略形) は、入力と出力のフォーマットを実装しています。 パッケージについて学んだことを踏まえて、fmt パッケージのファイルの先頭には何が書かれていると思いますか?

上の fmt が二重引用符で囲まれていることに注意してください。 このような二重引用符の使用は、「式」の一種である「文字列リテラル」として知られています。 Goでは文字列は一定の長さの文字(文字、数字、記号、…)の並びを表す。 文字列については次の章で詳しく説明しますが、とりあえず覚えておいてほしいのは、冒頭の"文字には最終的に別の"文字が続き、その間のものはすべて文字列に含まれるということです。 (" 文字自体は文字列の一部ではない)

//で始まる行はコメントとして知られている。 コメントは Go コンパイラには無視され、あなた自身 (あるいはあなたのプログラムのソースコードを拾い上げる人) のために存在します。 Go は 2 種類の異なるスタイルのコメントをサポートしています。 // コメントは // と行末の間のすべてのテキストがコメントの一部となり、/* */ コメントは * の間のすべてがコメントの一部となります。 (

この後、関数宣言が表示されます:

func main() { fmt.Println("Hello World")}

関数は Go プログラムのビルディング ブロックです。 関数は入力、出力、および順番に実行されるステートメントと呼ばれる一連のステップを備えています。 すべての関数はキーワード func で始まり、関数名(この場合は main)、括弧で囲まれた0個以上の「パラメータ」のリスト、オプションの戻り値型、中括弧で囲まれた「本体」が続きます。 この関数はパラメータを持たず、何も返さず、文も1つだけである。

プログラムの最後の部分は次の行です:

 fmt.Println("Hello World")

この文は3つの要素で構成されています。 まず、Printlnというfmtパッケージの中の別の関数にアクセスします(これはfmt.Printlnの部分です、PrintlnはPrint Lineの意味です)。 そして、Hello World を含む新しい文字列を作成し、その文字列を最初かつ唯一の引数としてその関数を呼び出します (呼び出しまたは実行とも呼ばれます)。

この時点で、すでに多くの新しい用語を見てきたので、少し圧倒されているかもしれません。 時には、意図的にプログラムを声に出して読むことが役に立ちます。

新しい実行プログラムを作成し、fmt ライブラリを参照し、main という 1 つの関数を含む。 その関数は引数を取らず、何も返さず、次のようなことをします。 fmt パッケージに含まれる Println 関数にアクセスし、1つの引数 – 文字列 Hello World.

を使って呼び出す。Println 関数はこのプログラムの中で実際に動作する。

godoc fmt Println

Among among other things you see this:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Go は非常によく文書化されたプログラミング言語ですが、プログラミング言語に慣れていない限りこの文書を理解するのは難しいかもしれません。

手元の関数に戻ると、このドキュメントは Println 関数が、あなたが与えたものを何でも標準出力 – あなたが作業しているターミナルの出力に対する名前 – に送ると教えてくれています。

次の章では、型について学ぶことで、GoがどのようにHello Worldのようなものを保存し表現するかを探ります。

Problems

  • What is whitespace? コメントの2つの書き方を教えてください。

  • 私たちのプログラムはpackage mainで始まっています。

  • fmtパッケージで定義されているPrintln関数を使用しました。 もし、osパッケージのExit関数を使いたい場合はどうすればいいでしょうか?

  • Hello Worldを表示する代わりに、Hello, my name isとあなたの名前が続くように、私たちが書いたプログラムを修正します。

← 前へ インデックス

コメントを残す

メールアドレスが公開されることはありません。