フィネットエンジニアだより

株式会社フィネットのエンジニア感があるんだかないんだかよくわからないブログ

Rustことはじめ(その1 Hello WorldとCargo)

f:id:inet_engineer:20160427205526p:plain

 

ご安全に!角田です。 Mozillaが開発する Rust が5月16日に晴れて1.0.0をリリースしていたことで周囲でちょっと話題になっていたので、手を出してみました。

なるほどなるほど。ちょっと公式サイトとかWikipediaを見てみた感じ、ML系とかLispっぽい部分もあるっぽくて、結構好みです。

とりあえずインストール

ダウンロードページ を見てみると、流石に1.0.0の正式リリースだけあってLinux/Mac/Windowsあたりはバイナリが存在します。 Linux/Macではワンライナーでインストールドーン!!と行けます。

$ curl -sSf https://static.rust-lang.org/rustup.sh | sh

まずはHello World

まあこんなもんでしょうか。最近の言語にしては珍しく末尾にセミコロンがいるタイプみたいです。 ファイル名の命名規則は「スネークケースだけどアンダースコア入れなくてもよくね?」だそうです。ワイルド。

コンパイル

$ rustc main.rs

実行

$ ./main Hello, world!

Cargoでプロジェクト管理

Maven とか Gradle とか sbt とか Leiningen とか、まあその辺のツールに相当するものです。 Rustをインストールするとバンドルされています。

プロジェクトの新規作成

$ cargo new hello_world --bin

--binオプションは、アプリ作る用のオプションで、mainメソッドのあるソースが生成されます。 省略するとライブラリ用のプロジェクトになります。

--binあり

│ Cargo.toml
│
└─src
    main.rs

--binなし

│ Cargo.toml
│
└─src
    lib.rs

因みにここでは省略していますが、ついでに.gitディレクトリと.gitignoreまで作られます。なんだか色々と強気な感じがします。

Cargo.tomlはプロジェクトの設定ファイルです。 こんな感じのファイルが出来上がります。

authorsのところはgitで設定されていればそこから情報を引っ張ってくるみたいです。

ビルドと実行

ビルド

$ cargo build
Compiling hello_world v0.1.0 (file:///home/razon/workspace/hello_world)

実行 ```

$ cargo run
Running `target/debug/hello_world`
Hello, world!

もちろん、ビルドせずにrunしても、依存するbuildタスクを実行後にrunしてくれます。

次回は

開発環境について見てみようかと思います。 それではまた。