保存期間と可変性
var、constとstaticの範囲と書き込み可能性を区別します。
Wave Foundation
宣言による意味
| フォーマット | 許容位置 | 再代入 | 用途 |
|---|---|---|---|
var |
関数・ブロック | 可能 | 一般的な可変ローカル変数 |
const |
最上位 | 不可 | グローバル定数宣言 |
static |
最上位 | 可能 | プログラム寿命中に存在する静的ストレージ宣言 |
const PAGE_SIZE: i32 = 4096;
static request_count: i64 = 0;
fun main() {
var limit: i32 = 4;
var current: i32 = 0;
var retries: i32 = 0;
current += 1;
retries += 1;
println("{} {} {}", limit, current, retries);
}
ローカル宣言の規則
var value: i32 = 1;
value = 2;
varで宣言したローカル変数に新しい値を代入できます。プログラム全体で使用する定数は、最上位でconstと宣言します。
const と static のローカルでの使用
constとstaticは最上位宣言です。関数本文とfor初期化では、地域宣言であるvarを使用します。
寿命とポインター
ローカル変数のアドレスは&で取得できますが、ポインタが指すリポジトリの実際の有効期間はptr<T>タイプによって追跡されません。ローカルリポジトリのアドレスを関数から引き渡すときは、そのアドレスが引き続き有効であることをプログラム構造で直接保証する必要があります。