0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rustを少しだけ...

Last updated at Posted at 2025-01-26

Rust(ラスト)

Rustは、効率的で信頼性の高いソフトウェアを誰でも作成できるように設計されたプログラミング言語です。
マルチパラダイムをサポートしており、手続き型プログラミング、オブジェクト指向プログラミング、関数型プログラミングなど、さまざまな実装手法を活用できます。
コンパイル基盤にはLLVMを使用しており、強力な型システムとリソース管理機構により、メモリ安全性が保証されています。

目次

  • 言語の仕様や文法について
  • 環境構築
  • 実際に環境を構築する
  • hello world
  • 問題

Rustの資料

言語の仕様や文法について

Rustは、メモリの安全性を保証しながら、低レベルな制御も可能にするプログラミング言語である。その核となるのが「所有権」と「借用」の仕組みであり、コンパイラがコード内の参照やライフタイムを厳密にチェックする。この仕組み(borrow checker)のおかげで、二重解放やダングリングポインタといったメモリバグをコンパイル時に未然に防ぐことができる。

この仕組みにより、Rustは高い安全性を提供し、特にマルチスレッド環境においてもデータ競合やメモリ破壊のリスクを大幅に低減している。さらに、プログラム全体のメモリ管理をコンパイラがサポートしてくれるため、大規模な開発プロジェクトでも安定した運用が可能である。

しかし、この安全性を実現するための所有権やライフタイムの概念は一筋縄ではいかず、習得には一定の学習コストが伴う。また、コンパイラがすべてを管理できるわけではなく、場合によっては低レベルな制御が必要になる場面もある。

変数宣言
fn main() {
    let a; //定数に変数を代入
    let b = 5; //定数に変数を代入
    let mut = 1; //可変
}
四則演算
fn main() {
    // 足し算
    let sum = 10 + 10; //結果は20

    // 引き算
    let difference = 9.5 - 4.4; //結果は5.1

    // 掛け算
    let product = 4 * 10; //結果は40

    // 割り算
    let quotient = 50 / 25; //結果は2
    let floored = 2 / 3; // 結果は0

    // 余り
    let remainder = 213 % 2; //あまり1
}
大文字小文字変換
fn main() {
    let str: String = "SuPerNova".to_string();

    println!("{}", str.to_uppercase()); // SUPERNOVA
    println!("{}", str.to_lowercase()); // supernova
}
入力受付
fn main() {
    let mut hoge = String::new();
    std::io::stdin().read_line(&mut hoge).ok();
    let answer = hoge.trim().to_string();
    print!("{}",answer);
}

環境構築

Rustをインストールする。

この公式サイトからダウンロード。
もし一度ダウンロードしている場合はアップデートをする。

コマンドプロンプト
$ rustup update stable

VSCodeの拡張機能の紹介

下記の拡張機能をインストール

rust-analyzer

VSCodeにRustのサポート

CodeLLDB

高機能デバッガー

実際に環境を構築する

コマンドプロンプト
cd ~/
cargo new rust_hello_world
# Created binary (application) `rust_hello_world` package
cd rust_hello_world
code .

上記のコードをVSCodeのコンソールに打ち込みましょう(コピーペーストでも構いません)。

C:\Users\user\rust_hello_world
上手くできていればこのディレクトリにファイルが存在しています。

問題1: Hello,Worldと出力するプログラム

コンソール上にHello,Worldと出力してください。

入力例
なし
出力例
Hello,World

問題2: 文字列内の大文字と小文字を入れ替えるプログラム

与えられた文字列に対して、大文字を小文字に、小文字を大文字に変換して出力するプログラムを作成してください。

与えられる文字列
RustProgramming
出力例
rUSTpROGRAMMING

補足:

差の絶対値を計算して比較します。
複数候補がある場合は小さい値を選択します。

問題3: 数字の桁和を計算する関数を作成するプログラム

標準入力から1つの整数を受け取り、その整数の各桁の和を求める関数を実装してください。関数を作成し、桁の合計を返すようにしてください。

入力例1
12345
出力例1:
合計:15
入力例2
987
出力例2
合計:24

終わりに

少しだけラストを触るための情報を載せた。Rust入門の参考になれば幸いだ。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?