0Pricing
Learn Rust Coding · レッスン

スカラー型

整数、浮動小数点数、bool、char

「スカラー型」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。

スカラー型とは

スカラー型は、1つの値を表します。Rustには、主に次の4種類のスカラー型があります。

  • 整数
  • 浮動小数点数
  • ブール値
  • 文字
fn main() {
    let i = 10;       // integer
    let f = 2.5;      // float
    let b = true;     // bool
    let c = 'R';      // char
    println!("{} {} {} {}", i, f, b, c);
}

整数型

整数には、固定サイズの符号付き(i)と符号なし(u)の種類があります。i8、i16、i32、i64、i128があり、uについても同様です。

デフォルトの整数型はi32です。

fn main() {
    let small: i8 = -120;
    let big: u64 = 18_000_000_000;
    println!("{} {}", small, big);
}

符号付きと符号なし

符号付き整数は負の値を取れますが、符号なし整数は取れません。

  • i8の範囲は-128から127です。
  • u8の範囲は0から255です。

個数のように負になることがない値には、符号なし整数を選びます。

fn main() {
    let temperature: i32 = -15;
    let people: u32 = 250;
    println!("temp {} people {}", temperature, people);
}

整数リテラル

整数は異なる基数で記述でき、読みやすくするためにアンダースコアも使えます。

  • 10進数:1_000_000
  • 16進数:0xff
  • 8進数:0o77
  • 2進数:0b1010
fn main() {
    let dec = 1_000;
    let hex = 0xff;
    let bin = 0b1010;
    println!("{} {} {}", dec, hex, bin);
}

浮動小数点型

Rustには2種類の浮動小数点型があります。f32とf64です。デフォルトはf64です。これは、より高い精度を提供するためです。

浮動小数点数はIEEE-754標準に従います。

fn main() {
    let pi: f64 = 3.141592;
    let e: f32 = 2.718;
    println!("pi {} e {}", pi, e);
}

数値演算

Rustは一般的な算術演算子+、-、*、/、%(剰余)をサポートしています。

整数の除算では、ゼロ方向に切り捨てられます。

fn main() {
    let sum = 5 + 10;
    let quotient = 7 / 2;     // 3 (integer)
    let remainder = 7 % 2;    // 1
    let float_div = 7.0 / 2.0; // 3.5
    println!("{} {} {} {}", sum, quotient, remainder, float_div);
}

ブール型

bool型には、trueとfalseという2つの値だけがあります。

ブール値は比較によって生成され、if条件で使用されます。

fn main() {
    let is_active = true;
    let is_bigger = 10 > 3;
    println!("{} {}", is_active, is_bigger);
}

文字型

charは1つのUnicodeスカラー値を表し、シングルクォートで記述します。

Rustのcharは4バイトで、ASCIIよりはるかに多くの文字を扱えます。絵文字やアクセント付き文字も含まれます。

fn main() {
    let letter = 'A';
    let symbol = '@';
    let heart = '\u{2764}';
    println!("{} {} {}", letter, symbol, heart);
}

charとStringの違い

シングルクォートを使うとcharになり、ダブルクォートを使うと文字列スライス(&str)になります。

  • 'a'は1文字です。
  • "a"は1文字からなる文字列です。
fn main() {
    let c = 'x';
    let s = "x";
    println!("char {} string {}", c, s);
}

asによる型変換

Rustでは、数値型が自動的に変換されることはありません。明示的なキャストにはasキーワードを使用します。

注意してください。より小さい型へのキャストでは、データが失われる可能性があります。

fn main() {
    let x: i32 = 65;
    let y: f64 = x as f64;
    let c = x as u8 as char;
    println!("{} {} {}", x, y, c);
}

スカラー型の組み合わせ

プログラムでは、スカラー型を常に組み合わせて使用します。ここでは整数、浮動小数点数、ブール値を組み合わせて判断を行います。

fn main() {
    let price: f64 = 19.99;
    let quantity: u32 = 3;
    let total = price * quantity as f64;
    let is_expensive = total > 50.0;
    println!("total {} expensive {}", total, is_expensive);
}

理解度チェック

Rustのスカラーリテラルについての知識を確認しましょう。

まとめ

Rustの4つのスカラー型:

  • 整数 — 符号付き(i32)と符号なし(u32)があり、サイズも複数あります。
  • 浮動小数点数 — f32とf64があり、デフォルトはf64です。
  • bool — trueまたはfalseです。
  • char — シングルクォートで記述する、1つのUnicode値です。

数値を明示的に変換するにはasを使用します。

fn main() {
    let count: u32 = 42;
    let ratio: f64 = count as f64 / 7.0;
    let ok: bool = ratio > 5.0;
    let grade: char = 'B';
    println!("{} {} {} {}", count, ratio, ok, grade);
}

よくある質問

「スカラー型」レッスンは無料ですか?

はい。「スカラー型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「スカラー型」で何を学びますか?

整数、浮動小数点数、bool、char ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「スカラー型」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. letと可変性
  2. スカラー型
  3. 複合型
  4. シャドーイング
← Learn Rust Codingに戻る