如何在if-else塊中創建局部變量? (如果這是OCaml中有效)OCaml- if-else塊中的局部變量?
下面是什麼我想OCaml中做C例程代碼:
if (1 == 1) {
return 3;
} else {
int j = 5;
return j;
}
如何在if-else塊中創建局部變量? (如果這是OCaml中有效)OCaml- if-else塊中的局部變量?
下面是什麼我想OCaml中做C例程代碼:
if (1 == 1) {
return 3;
} else {
int j = 5;
return j;
}
你必須認識到,在OCaml的變量是不可變的,即宣佈時,他們被綁定到一個值,該值永遠不會改變。
如果您對「變量」的含義感到滿意,那麼您可以在表達式可以出現的任何位置聲明局部變量。形式
let v = expr1 in expr2
的表達式聲明一個變量,v
這是本地expr2
。它的值(不能改變)由expr1
給出。
您可以在任何地方使用這種表達式,因此您可以在if表達式中使用它。
A的C代碼相當忠實的翻譯是這樣的:
if 1 = 1 then
3
else
let j = 5 in
j
這是合法的,但沒什麼用。
let i=1;;
if i = 1 then
3
else (
let j=5 in
j
) ;;
- :INT = 3
看它是這樣的:一個IF-THEN-ELSE是一個表達式,對其進行評估並返回一個值。不是這樣做,定義那個建築。尤其是你不能定義要在外部使用的變量。 –