有什么方法可以更新在 let-in-end 表达式中绑定在全局范围内的变量?
例如,如果我有一个全局变量:
val playerScore = 0;
然后是函数:
fun hit (option:int) =
if option = 2 then
printStay(playerScore, dealerScore)
else
let
val cardDrawn = showCard(hd deck)
val playerScore = playerScore + getValue(hd deck)
in
print ("You chose to hit\n" ^ cardDrawn ^ "Dealer Score: " ^ Int.toString(dealerScore) ^ "\nPlayer Score: " ^ Int.toString(playerScore) ^ "\n")
end;
playerScore 的值在 let 表达式中更新,并在“in”子句中打印正确的值,但 playerScore 的实际值不保存,并在此表达式完成后重置。
在这个表达式执行后,无论如何要在全局级别上保留 playerScore 的值吗?问题是我无法跟踪分数,因为它每次都重置为 0。
谢谢