Hello World!
Odinのインストールが無事に終わってodin
コマンドが使えるようになったところで、さっそくコードを書いて動かしてみることにします。最初のプログラムは予想される通り、伝統的なHello Worldです。テキストエディタを起動して次のコードを打ち込みます。
package main
import "core:fmt"
main :: proc() {
fmt.println("Hello, world!")
}
main :: proc()
という書き方は、あまり見慣れないものかもしれませんが、main関数を定義しているものだとなんとなく想像がつくのではないでしょうか。他は割と直感的なコードであるかと思います。
インデントのための空白文字はタブ文字にしています。標準ライブラリのソースコードを見るとタブ文字を使われているので、それに合わせることにしました。これはおそらくGoのスタイルを継承しているのではないかと思います。
Odinのソースコードの拡張子は.odinなので、ファイルの名前はhello.odin辺りが妥当かのように思えますが、留意すべきことが一つあります。
odin
コマンドのビルドシステムは、ディレクトリ単位で一つのプログラムを構成するのが基本となっています。言い換えると、一つのディレクトリに複数のmain関数を含めることは、可能ではあるけどあまり良い考えとは言えないということです。そういうわけで、今後はプロジェクトごとに一つのディレクトリを作成することにします。
参考までに例を上げると、自分の場合はLinux環境なので、/home/freemikan1)/code/tutorials/odinというディレクトリ以下にこのチュートリアルのコードを格納していくことにしたとします。今回のHello Worldプログラムはそのディレクトリの下にhello-worldという名前で作成することにします。そして、先のソースコードはhello-worldプロジェクトのmain関数となるソースコードなので、hello.odinよりもmain.odinとした方が適切です。したがって、完全なパスは/home/freemikan2)/code/tutorials/odin/hello-world/main.odinとなります。これはあくまで例なので、好きなように色々試してから、一番しっくりくるやり方でやればよいかと思います。
このソースコードを上記の場所に保存したら、ディレクトリツリーは次のようになっています。
hello-world/ └── main.odin
ターミナルアプリケーションを起動して、hello-worldディレクトリに移動してから、odin
コマンドを使ってビルドします。
$ cd path/to/hello-world $ odin build .
ドット「.」を忘れないようにしてください。これはカレントディレクトリを起点にビルドすることを指示するものです。
エラーがなければhello-worldという名前の実行ファイルが生成されます。
hello-world/ ├── hello-world └── main.odin
この実行ファイルを実行すると、Hello, world!というテキストが表示されます。
$ ./hello-world Hello, world!
これで確かにOdinの環境が整ったことが確認できました。
odin
コマンドには、ビルドと実行を同時に行ってくれるrun
というサブコマンドがあります。
$ odin run . Hello, world!
多くの場合はこちらの方が便利です。
単一のファイルとしてビルド及び実行する方法もあります。
ビルド:
$ odin build main.odin -file
ビルドと実行:
$ odin run main.odin -file
状況に応じて使い分けてください。