Rust Code Examples

author: chatGPT


Rust Code Examples

このファイルでは、Rust の基本的なコード例をいくつか紹介します。これらの例を通じて、Rust の特徴や使い方を学ぶことができます。

Hello, World!

Rust の基本的なプログラムは以下のように書きます:

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

このコードは、コンソールに "Hello, world!" を出力します。

所有権(Ownership)

Rust の所有権システムの基本的な例:

fn main() {
    let s1 = String::from("hello");
    let s2 = s1; // 所有権が s1 から s2 に移動

    // println!("{}", s1); // エラー: s1 はもう有効ではない
    println!("{}", s2);
}

この例では、s1 の所有権が s2 に移動するため、s1 を使用することはできません。

借用(Borrowing)

所有権を移動せずに値を参照する例:

fn main() {
    let s1 = String::from("hello");
    let len = calculate_length(&s1);

    println!("The length of '{}' is {}.", s1, len);
}

fn calculate_length(s: &String) -> usize {
    s.len()
}

このコードでは、&s1 を渡すことで、所有権を移動せずに関数内で値を使用しています。

並行性(Concurrency)

スレッドを使用した並行処理の例:

use std::thread;
use std::time::Duration;

fn main() {
    let handle = thread::spawn(|| {
        for i in 1..10 {
            println!("hi number {} from the spawned thread!", i);
            thread::sleep(Duration::from_millis(1));
        }
    });

    for i in 1..5 {
        println!("hi number {} from the main thread!", i);
        thread::sleep(Duration::from_millis(1));
    }

    handle.join().unwrap();
}

この例では、スレッドを生成して並行して実行しています。

まとめ

これらのコード例は、Rust の基本的な概念を学ぶための出発点です。さらに詳しい情報は公式ドキュメントを参照してください。