0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rust 覚え書き

Last updated at Posted at 2022-12-24

Cragoとは何か

Cragoとは、Rustにおけるビルドシステム兼パッケージ管理システムである。

  • cargo new プロジェクト名 ⇒ プロジェクトの新規作成
  • cargo bulid ⇒ プロジェクトをビルド
  • cargo run ⇒ プロジェクトの実行(コンパイルと実行)
  • cargo check ⇒ 文法チェック
  • cargo test ⇒ プログラムをテスト
  • cargo doc ⇒ ドキュメントの作成
  • cargo publish ⇒ ライブラリーを公開

プロジェクトの新規作成

// プロジェクトを作成
$ cargo new exam 

// 作成されたメッセージ
>>>Created binary (application) `exam` package 

⇒examフォルダ以下

  • srcフォルダ
    ↳ main.rc // Rustのプログラムを書くためのファイル
  • .gitignore
  • Cargo.toml // Rustプロジェクトの基本情報や設定情報を記載(マニフェストファイル)

が作成される。

$ cat Cargo.toml

[package]
name = "exam"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

⇒Tomlは設定ファイルを記述するための言語。

参照
TOMLの仕様書(日本語訳)

Rustのクレート(ライブラリー)を使ってみる

使い方の手順
Cargo.tomlへ依存関係を記述
例えば、num-bigintというクレートを使うときは、以下のように記述する。

Cargo.toml
[package]
name = "exam"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
num-bigint = "0.4" // ここを新しく記述
main.rs
// BigIntを使うよという宣言
use num_bigint::BigInt;

fn main() {
    // BigIntのオブジェクトで変数を定義
    let num = BigInt::from(9999);
    println!("{}", num.pow(9999));
}
$  cargo run

>>>
 Updating crates.io index
   Compiling autocfg v1.1.0
   Compiling num-traits v0.2.15
   Compiling num-integer v0.1.45
   Compiling num-bigint v0.4.3
   Compiling exam v0.1.0 (C:\Users\reon1\vscode_project\Rust_ex\exam)
    Finished dev [unoptimized + debuginfo] target(s) in 7.54s
     Running `target\debug\exam.exe`
3678978362165515792692625984783565804550254385734776186401856613845616360874750523676165256293320372567032110928366569599432699044419901243683670414060788244958198542680024242555554443351351009201406913420042334263191360440293163925263158121905901809215111676734097618278012767257225075955830464560320325882929419607338700417637982216741626089370630527817919858248244425067882107032040504992133693942984257209267233391108496072474133573230329041350621303555562644061581689489773346475812382861630761542671206427399665195254818870660761299953367109234343296185246620947655303971825992891467766505449702800439539931629360781232287044852497103043500184438484564204069490370009909530341317336334459448625114891862723875368733284186382707049409415586173190187044779587133413954719164091602407423040277644116344823196694780496108829093860394544019077913975064195661487863596355153601977696894647060796078336789818901664700936711780540601588027849120357502804206125775390530395449721795143559185701130989019673973414458162432452044153141771428470077266579671902890598334369757628149907925325804486123759313657431199276911296909988206875045039284204307223007631041398551718017194485506118265217378424353090327768422839936661234797187668662233022432765913802940812930832473399186457600442171772676827615589458775748985986943115616079918481062535783932761746……以下略

⇒初回実行時は、crates.ioからnum_bigintをダウンロードして、ビルドし、実行を行う。

useの使い方

use クレート名::モジュール名
use クレート名::モジュール名1::モジュール名2;
use クレート名::{モジュール名A, モジュール名B};

Rustの範囲オブジェクト

「0..10」 ⇒ 0から9まで
「0..=10」⇒ 0から10まで

Rustで定数を記述する

定数宣言では、型の指定を省略できない

const 定数名: 型 = 値;

2次元配列の初期化

let mut 変数名 = [[初期値; 要素数]; 要素数]

match構文

if文が処理を真と偽に分ける処理ならば、match文は複数の値に応じて処理を分けることができる。

match 条件式 {
    値1 => 値1の時の処理,
    値2 => 値2の時の処理,
    値3 => 値3の時の処理,
    _ => 上記以外の処理, 
}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?