特殊变量 result
在 c 语言系统编程中, 经常需要声明一个返回值
| int ret = 0;
ret = read(...);
if (ret < 0) return ret;
return ret;
|
相比之下, nim 提供了默认的 返回值变量 result, 这个 result 的类型根据函数返回值的不同而不同
03 节 的函数可以简化成:
| proc get_alphabet(): string =
for letter in 'a' .. 'z':
result.add(letter)
echo get_alphabet()
|
如果你愿意, 并且执意如此, 可以将 result 给干掉, 这个过程叫作 shadow result
此时, result 被视为普通变量, 修改 result 将不能改变返回值, 除非显式 return result
| proc local_result(): int =
var result = 0
result += 5
echo local_result() # 0
|
这同时伴随警告
| Warning: Special variable 'result' is shadowed
|