generated at
Nimのポインタ型
pointer, ptr, refの3種類がある



pointer
アドレスを扱う型
nim
var num: int = 100 num_ptr: pointer = num.addr echo repr(num_ptr) # 0x1093b9430


ptr[T]
T型のアドレスを扱う型
安全ではない
nim
var num: int = 100 num_ptr: ptr int = num.addr echo repr(num_ptr) # ref 0x10c975430 --> 100


ref[T]
T型をnewするための型
メモリを確保する
参照されなくなったらGCされる
nim
var num_ref: ref int proc ref_test(num: ref int) = echo repr(num) num_ref = new int num_ref[] = 100 ref_test(num_ref) # ref 0x10ba71048 --> 100


参考