我希望这个工作:
fun function (i) =
let
if i = 1 then
val h = valOf(Int.fromString(valOf(TextIO.inputLine TextIO.stdIn)))
else
val h = someFunction();
in
code...
end
Run Code Online (Sandbox Code Playgroud)
但似乎你不能声明这样的值......我应该怎么做才能让它工作?
ifML 中的语句是一个表达式。这意味着它必须具有价值。请记住,SML 中的值声明如下所示:
val <name> = <expression>
Run Code Online (Sandbox Code Playgroud)
由于if ... then ... else语句是一个表达式,您可以在=.
fun function i =
let
val h = if i = 1 then ...
else ...
in
...
end
Run Code Online (Sandbox Code Playgroud)
另一件事。请记住,这valOf可能会出错。在输入上使用它几乎会导致您的程序崩溃,因为用户可以输入任何内容。