メインコンテンツまでスキップ

データ型

この文書は、Waveプログラミング言語で提供される様々なデータ型について説明します。 Waveでは様々な種類のデータ型を通じて値を保存し演算することができ、それぞれのデータ型はそのデータの表現方法とメモリ処理方法を明確に定義します。

データ型を明確に指定することは、Waveのコア設計哲学の一つです。 これにより、コードの意図を明確に表現でき、コンパイル時にエラーを早期発見し、効率的なメモリ使用と安定した実行を保証できます。


整数型

整数型は整数値を保存するために使用されます。 Waveでは、基本的にi32(符号付き32ビット整数)とu32(符号なし32ビット整数)を頻繁に使用しますが、必要に応じて整数のビットサイズを非常に細かく指定できます。

符号付き整数型はi8からi1024まで提供され、符号なし整数型はu8からu1024まで使用可能です。 これにより、単純な計算から大規模な整数演算、暗号処理、低レベルシステムプログラミングに至るまで幅広い要求を満たすことができます。

次は整数型を使用した簡単な例です。

var a: i32 = 100;
var b: u32 = 200;

浮動小数点型

浮動小数点型は実数値を保存するために使用されます。 Waveで基本的に使用される浮動小数点型はf32であり、より高い精度が必要な場合はより大きな型を選択できます。

Waveはf32からf128までの浮動小数点型を提供し、計算の精度と性能の間でユーザーが直接選択できるようにします。 これにより、一般的な数値計算から精密な科学計算に至るまで、さまざまな用途の実数演算を処理できます。

以下は浮動小数点型を使用する例です。

var pi: f32 = 3.14;
var e: f64 = 2.71828;

文字列型

文字列型はテキストデータを扱うために使用されます。 Waveではstrキーワードを使用して文字列を宣言し、文字列リテラルはダブルクォート(")で囲んで表現します。

文字列はプログラムでのメッセージ出力、ユーザー入力処理、テキストベースのデータ処理などに広く活用されます。

以下は文字列型の基本的な使用例です。

var text: str = "Hello Wave";

ブール型

ブール型は**真(True)または偽(False)**の値を表すデータ型です。 Waveではbool型を使用し、値はtrueまたはfalseに指定します。

ブール型は条件文とループで重要な役割を果たし、プログラムの流れを制御するために使用されます。

var isActive: bool = true;
var isAvailable: bool = true;

文字型

文字型は単一文字を保存するために使用されます。 charキーワードを使用して宣言し、1つの文字を保持することができます。

文字リテラルはシングルクォート(')で囲んで表現します。

var letter: char = 'A';

バイト型

バイト型は1バイトサイズのデータを保存するために使用されます。 この型は主にバイナリデータ処理、ファイル入出力、ネットワークプログラミングのように低レベルデータ処理が必要な場合に役立ちます。

Waveではbyteキーワードを使用してバイト型を宣言します。

var byteData: byte = 0xFF;

ポインター型

ポインター型はメモリアドレスを直接参照するために使用されます。 Waveではptr<T>の形でポインター型を宣言し、特定の型のメモリアドレスを安全に表現することができます。

ポインターは低レベルメモリアクセスが必要な場合に使用され、システムプログラミングやパフォーマンスが重要なコードで主に利用されます。

var ptr: ptr<T> = &someVariable;

配列型

配列型は同一のデータ型の複数の値を順番に保存するために使用されます。 Waveではarray<型, サイズ>の形で配列を宣言し、配列のサイズをコンパイル時に明確に指定します。

これによりメモリ構造が明確になり、安定したアクセスが可能になります。

var numbers: array<i32, 5> = [1, 2, 3, 4, 5];

各データ型は用途と特性に応じた範囲とサイズを選択できるように設計されています。 適切なデータ型を選択すれば、メモリを効率的に管理でき、コードの安定性と可読性も大幅に向上します。