我想要一个赋值变量,但稍后再进行赋值(在另一个块中)。
例如:
let n: int
try:
n = parseInt paramStr(1)
except ValueError:
quit "Expected Number
这现在不可能吗?如果是这样,为什么? 在这种情况下,最佳选择是什么?
我认为:
let n =
try:
parseInt paramStr(2)
except ValueError:
-1
if n == -1:
quit "Expected a number"
但是看起来当然不好……
答案 0 :(得分:1)
它是impossible given the current implementation,对我来说您的替代方法似乎很合理(或使用初始值为-1
的var)。否则,您可以使用parseopt
模块来抽象命令行输入验证逻辑。
答案 1 :(得分:0)
您可以执行以下操作:
let n =
try:
var n: int
let processedChars = paramStr(1).parseInt(n)
if processedChars == 0:
quit "Expected number"
n
except ValueError:
quit "Parsed integer is out of the valid range"
还要注意,parseInt
不会返回解析的值,而是解析的字符数。