fn main() {
a := 1
println(isnil(&a)) // 返回false,变量只能通过:=来初始化,一定会有初始值
f := C.popen('ls', 'r') //调用C代码返回的指针,有可能是空指针
if isnil(&f) {
// ...
println('f is nil')
} else {
println('f is not nil')
}
}
也可以在代码中使用==或!=来判断指针是否是空值:
module main
struct Point {
pub:
x int
y int
}
fn main() {
p1 := unsafe { nil } //初始化为空值nil,一定要在unsafe代码块中,或unsafe表达式
p2 := &Point{1, 2}
if p1 == unsafe { nil } { //判断是否为空值nil
println('p1 is nil')
}
if p2 != unsafe { nil } { //判断是否不为空值nil
println('p2 is not nil')
}
}