【Rust】チュートリアルをやって見た

Rust

こんにちは、しきゆらです。

今回はタイトル通りRustという言語のチュートリアルをやってみたのでその記録として残しておきます。

 

Rustさんは、FirefoxでおなじみMozilla製のプログラミング言語です。

コンパイル言語であり、速度はそれなり、メモリリークなどを極力排除することができるような言語だそうな。

詳しいことは、ググっていただけるとありがたいです。

 

それでは、見ていきます。

内容に関しては、以下のものをそのまま実行していくだけです。

はじめる – Rust

 


 

念のため

今回はMac上で行なっていきます。

Mac Sierra 10.12.6

 

Rustのインストール

上記サイトでは、以下のコマンドでインストールせよとのことです。

$ curl https://sh.rustup.rs -sSf | sh

しかし、私はすでにhomebrewによって環境ができていたのでそのまま行なっています。

バージョンは以下のとおり

$ rustc -V
rustc 1.20.0

 

Hello World!

まずは、それ用の場所を作ります。

$ mkdir hello
$ cd hello

そこに以下の内容でプログラムを書きます。

fn main(){
  println!("Hello World");
}

 

以下のコマンドでコンパイル、実行していきます。

$ rustc main.rs
$ ./main
Hello World!

 

Hello Worldはこれにて終わり。

 

次からは、Rustさんのビルドシステムに触れていくようです。

Hello Cargo!

依存関係や、複数に分けたプログラムをまとめるときなど、まとめて面倒を見てくれるようです。

Cargoを使うには、それぞれを所定の場所に所定のものを置く必要があります。

$ mkdir src
$ mv main.rc src
$ rm main

 

設定ファイルの作成

helloディレクトリ直下に、Cargo.tomlを作ります。

[package]

name = "hello_world"
version = "0.0.1"
authors = [ "あなたの名前 <you@example.com>" ]

 

ビルドに関しては、以下のコマンド一発です。

$ cargo build
   Compiling hello_world v0.1.0 (file:///path/to/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.91 secs
$ ./target/debug/hello
Hello World!

 

そして、この面倒なビルドと実行は、以下のコマンド一つで実行できます。

$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/hello_world`
Hello, world!

 

Rust製のプログラムを実行したい時は、例えばgitからcloneしてきて、

上記コマンドを実行するだけで終わり。

面倒なことは全てCargoさんが担ってくれるようです。

$ git clone someurl.com/foo
$ cd foo
$ cargo build

 

 

Cargoさんの力

なお、Cargoに関するこれまでのあれこれは、コマンド一発で全て終わってしまいます。

新しくプロジェクトを作る時は、以下のコマンドで最低限の土台はできてしまいます。

$ cargo new プロジェクト名 --bin

ライブラリを作る場合は「–lib」、実行ファイルを作りたい場合は「–bin」だそうな。

 

これだけで、設定ファイル、srcディレクトリ、main.rsファイルまでできてしまいます。

必要あれば、設定ファイルを追記・修正するだけ。

あとはプログラムを書くだけです。

 

なお、newした時のsrc/main.rsは以下のような内容になっています。

fn main() {
    println!("Hello, world!");
}

この記事でやってきたことは、全て「cargo new プロジェクト名 –bin 」というコマンド一つで終わりなのです。

とほほ。

 

 

おわり

さて、今回はRustの日本語チュートリアルをやりました。

なんとなく触るには、ちょっとこれまでとは別物な感じがしますが、面白そうなのでいいでしょう。

Elixirさんも、本を買い途中で放置しているというのに・・・

【Elixir】プログラミングElixirをまとめてみる

【Elixir】GETTING STARTEDを翻訳してみる

 

 

※Amazonの購入履歴を見ると、買ったのはちょうど1年前のようです。

 

長続きしないと思いますが、またやっていく予定です。

 

 

 

今回はここまで。

おわり

Posted by しきゆら