スカラー型
整数、浮動小数点数、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フィードバックを取得できます。ローカル設定は不要です。