前のページ

Rust 事始め

ツールをつくるのにRustを使っているので基本の勉強
勉強元は以下のURL

hello world

main() 関数の中では

 println!("Hello, world!");

println! は関数ではない、!がついていたらマクロと考える。

Rustは式指向言語、行はセミコロン (;) で終わる。

コンパイル・実行方法

コンパイルは rustc で実施
ファイル名の実行ファイルが作成される。

rustc main.rs
./main

Cargo

Cargo は rust のビルドシステム。
コードのビルド、依存ライブラリのダウンロード、ダウンロードした依存ライブラリのビルドを実施。

Hello world を Cargo に変換する。

Cargo は src ディレクトリにソースがあると想定して動作する。
Cargo.tomlが設定ファイルとなり、プロジェクトフォルダ直下に作成する。
Cが大文字であることに注意。
TOML = Tom’s Obvious, Minimal Language

ファイルの内容は以下の通り

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

上記ファイルをつくったらコマンド実行

$ cargo build  
 Compiling hello_world v0.0.1 (file:///Users/makoto/OneDrive/src/rustbyexample)  
Finished debug [unoptimized + debuginfo] target(s) in 1.19 secs  
$ ./target/debug/hello_world  
Hello world!

一連の流れは,cargo run でも可能

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

ファイルの更新が無いのでビルドは行っていないことに注目

リリースビルドの仕方

cargo build –releaseでリリースビルド実施
Cargo.lockファイルが作成される。

クレート?

いわゆるライブラリと考えて良さそう。
tomlの dependenciesに必要なライブラリを記述
以下のリポジトリにRustチームのクレートがある。

Cargo.tomlのクレートのバージョン指定は、

rand="0.30"

という指定だと0.30 以上のバージョンという指定になることに注意
バージョンを固定したいのであれば

rand==0.30"

最新であれば

rand="*"

クレートのバージョンが上がってしまい、ビルドするごとに最新版を取得するような動きはしない。
ビルド時にCargo.lockファイルにバージョンを記録するので移行はlockファイルにあるバージョンを使用するようになる。

とりあえず、開発周りのメモ。

Licensed under CC BY-NC-SA 4.0
最終更新 Jan 10, 2021
Built with Hugo
Theme Stack designed by Jimmy