マニュアルから:
変数のアドレスを取得できますが、let ステートメントで宣言された変数には使用できません。
これは安全を確保するために行われていることを理解しています。さて、const からアドレスをどうしても取得したい場合、回避策はありますか?
const には実際にはアドレスがなく、どこにも格納されていない可能性があります。この小さなプログラムを見て、中間の C ソース コードで何が起こるか見てみましょう。
const x = 10
echo x
echo x + 1
関連する C コードは次のようになります。
STRING_LITERAL(TMP5, "10", 2);
STRING_LITERAL(TMP6, "11", 2);
NIM_EXTERNC N_NOINLINE(void, xInit)(void) {
printf("%s\012", ((NimStringDesc*) &TMP5)? (((NimStringDesc*) &TMP5))->data:"nil");
printf("%s\012", ((NimStringDesc*) &TMP6)? (((NimStringDesc*) &TMP6))->data:"nil");
}
したがって、計算は実際にはコンパイル時に行われ、最終的な文字列echo
は int の代わりにプログラムに格納されx
ます。