お試し 技術

Rust言語をはじめてさわる

これまで様々な言語をさわってきましたが、今回は比較的新しいRustにさわってみます
内容としてはあまり初歩的なこと(プロジェクトの作成等)については記載しません。また、エディタはRustRoverを使用しています

名称バージョン
Rust(edition)2024
関連記事
Pythonをさわってみる - ナストンのまとめ
Pythonをさわってみる - ナストンのまとめ

以前、Kotlinをさわっての記事を記載しましたが、AIが話題になっておりそれに伴いよく耳にする言語であるPythonを ...

関連記事へ

関連記事
Kotlinをさわってみる - ナストンのまとめ
Kotlinをさわってみる - ナストンのまとめ

最近、C#やPowerShell、JavaScirptでしかコードを書けていないため、新たな刺激を求めてKotlinを少 ...

関連記事へ

そもそもRustってどんな言語?

C/C++と同等の実行速度を持ちながら、所有権と呼ばれる仕組みを用いることで、ガベージコレクションなしでメモリ管理を実現し、また、コンパイル時にメモリ安全をチェックする仕組みがあるため、基本的にnull参照・データ競合などが発生しないとのことでした
詳しくは以下のサイトを参照してください

参考サイト
Rust入門講座①Rustの紹介および基本 #Rust - Qiita
Rust入門講座①Rustの紹介および基本 #Rust - Qiita

目的 社内にRustを広めるために作った入門講座なのですが、せっかくなので記事として外部公開しようかなと思います。 学習 ...

参考サイトへ

戻り値の記述ルール

Rustでは関数内で使用する戻り値の記載方法が2種類あり、それぞれ条件きまっているそうです

fn add(a: i32, b: i32) -> i32 {
    if a < 0 || b < 0 {
        return 0; // 処理の途中で抜ける場合は return を記載
    }
    a + b // 処理が最後まで実施された場合はセミコロン省略で記載
}

fn main() {
    println!("The sum of 5 and 3 is: {}", add(5, 3));
    println!("The sum of -1 and 6 is: {}", add(-1, 6));
}

上記を実行すると以下のように出力されます

if式

Rustでは if文 ではなく、 if式 と呼ぶらしいです。式と呼ばれているように、Kotlinと同じように値の代入ができるようです

fn comparison(a: i32) -> &'static str {
    let b = if a < 0 {
        "negative"
    } else if a == 0 {
        "zero"
    } else {
        "positive"
    };
    b
}

fn main() {
    println!("-3 is {}", comparison(-3));
    println!("0 is {}", comparison(0));
    println!("4 is {}", comparison(4));
}

上記を実行すると以下のように出力されます

原則変数の固定

Rustで変数を宣言すると基本的に他言語でいうところのconst(定数)となります
処理実行中に変数の値を変えたい場合は、変数宣言時に mut という単語を追加します

fn main() {
    let a = 10;
    a = 20;
    println!("The value of a is {}", a);
}

上記コードを実行し、コンパイルをすると以下の画像のようなエラーが発生し、mutを付けるように促される

使用しているエディタによって表示が変わるかもしれません
fn main() {
    let mut a = 10;
    a = 20;
    println!("The value of a is {}", a);
}
今度は問題なく変数の値が更新できました

最後に

今回はこれでRustをさわってみての内容を記載しましたが、色々な言語を触っているからかあまり真新しさは感じませんでしたが、言語の違いがあるので新しい言語を触るのはやはり楽しいですね

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社|ADS Co., Ltd.
アドバンスド・ソリューション株式会社|ADS Co., Ltd.

Microsoft 365/SharePoint/Power Platform/Azure による DX コンサル・シス ...

サイトへ移動

PR

-お試し, 技術
-