1コンパイル時に定数になる値
Kuinではconstやenumの要素に指定する式など、「コンパイル時に定数にできる値」を記述すべき箇所があります。 どのような値がコンパイル時に定数にできるかを説明します。
1.1ほとんどのリテラル
ほとんどのリテラルはコンパイル時に定数になります。 ただし、文字列型以外の配列リテラル([1, 2, 3]など)と関数リテラルは除きます。
例えば、図1-1のリテラルはすべてコンパイル時に定数になります。
1.2定数同士の演算
定数同士に対する一部の演算は、結果が定数になることが保証されています。 例えば定数同士の加算は結果も定数になることが保証されており、「5 + 3」はコンパイル時定数になります。
どの演算結果が定数になるかについては、「演算子」の各項目の説明を参照してください。
2Kuin Editorから実行したときのディレクトリ
Kuin Editorから実行したときの、カレントディレクトリとリソースのディレクトリの扱いは、利便性のためにデバッグモードではリリースモードと異なります(表2-1)。
ディレクトリ | デバッグモード | リリースモード |
---|---|---|
カレントディレクトリの初期値 | .knファイルがあるディレクトリ | カレントディレクトリ |
"res/ファイルパス" | .knファイルの位置にある「res」ディレクトリ内 | exeの位置にある「res.knd」ファイル内 |
リリースモードではカレントディレクトリが中心になりますが、デバッグ実行時ではリソース等が存在する.knの位置が中心になるように動作します。 デバッグ実行のたびにリソースファイルをコピーする必要があるのを防ぐためです。
従って、ファイルにアクセスするときには表2-2のように書くことを推奨します。
ファイルの種類 | 書き方 |
---|---|
カレントディレクトリにあるファイル | "ファイルパス" |
exe配下にあるファイル | wnd@exeDir() ~ "ファイルパス" |
リソースファイル | "res/ファイルパス" |
なお.knファイルを保存せずにデバッグ実行した場合や、Kuin Editorを使わずにコンソール版のKuinコンパイラを直接使った場合には、デバッグモードでもリリースモードと同じ挙動になります。