如何在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是一个表达式,对其进行评估并返回一个值。不是这样做,定义那个建筑。尤其是你不能定义要在外部使用的变量。 –