F#入门-第二章 F#基础-第四节 let语句-值的绑定
2010-08-15 22:34
211 查看
这一节针对let语句进行说明。
let语句是变量赋值语句以及对变量进行函数定义语句。
因为函数也可以用let语句来进行定义,所以let语句在F#中是十分重要的。
(因为变量一旦赋了值就不能更改,所以在let语句中倒更象是常量定义。)
let语句如下所示(省略了一部分)
let示例语句1
分别表示:
将数值3绑定给变量num。
将“传入的数值加1后返回”定义成函数绑定给变量inc。
关于函数,在下一节“let语句-函数定义”中做说明。
let示例语句2
这里也同样如此,利用绑定的值进行计算,结果如下所示。
执行结果
使用in的时候,in前面的变量值只在紧跟在in后面的语句中有效。这个称之为变量的有效范围。
变量值的有效范围
变量值的有效范围被后面的let语句所覆盖。
被覆盖掉的变量范围内的变量值,在变量范围被覆盖时被隐藏起来。
变量范围的覆盖
执行这段代码后,最初的a的值10被隐藏,所以a的值显示为20。
同时,顶级的变量如果被第二次绑定,F#中被视为语法错误。
编译错误
但是,为了方便起见,在解释器fsi中,并不视为错误。执行代码后特殊变量it仍然可以正常显示。
关于常州蓝博纺织机械有限公司的产品被常州蓝博节能设备有限公司非法假冒的声明
let语句是变量赋值语句以及对变量进行函数定义语句。
因为函数也可以用let语句来进行定义,所以let语句在F#中是十分重要的。
(因为变量一旦赋了值就不能更改,所以在let语句中倒更象是常量定义。)
let语句如下所示(省略了一部分)
let示例语句1
let num = 3;; let inc x = x + 1;; |
将数值3绑定给变量num。
将“传入的数值加1后返回”定义成函数绑定给变量inc。
关于函数,在下一节“let语句-函数定义”中做说明。
let示例语句2
let num2 = 3 in num2 + 4;; let square x = x * x in square 5;; |
执行结果
> let num2 = 3 in num2 +4;; val it : int = 7 > let square x = x * x in square 5;; val it : int = 25 |
变量值的有效范围
let a = 10 in print_int a; //a是有效的 print_int a;; //因为只用;做了区分,仍在同一语句中,所以这里的a仍然有效。 let a = 10 in print_int a;; //a是有效的 print_int a;; //这里的a已在另一语句中,所以这里a已经无效。 |
被覆盖掉的变量范围内的变量值,在变量范围被覆盖时被隐藏起来。
变量范围的覆盖
let a = 10 in let a = 20 in print_int a;; |
同时,顶级的变量如果被第二次绑定,F#中被视为语法错误。
编译错误
let a = 1;; let a = 2;; →error: FS0037: Duplicate definition of value 'a' |
关于常州蓝博纺织机械有限公司的产品被常州蓝博节能设备有限公司非法假冒的声明
相关文章推荐
- F#入门-第二章 F#基础-第五节 let语句-函数定义
- F# 入门(四):let语句——值的绑定/函数定义
- F#入门-第二章 F#基础-第十八节 异常(二)
- F#入门-第二章 F#基础-第十四节 数组
- F#入门-第二章 F#基础-第十九节 模式匹配(一)
- F#入门-第二章 F#基础-第二十二节 模块与命名空间
- F#入门-第二章 F#基础-第十节 引用类型
- F#入门-第二章 F#基础-第十二节 列表(list)
- F#入门-第二章 F#基础-第八节 for循环
- F#入门-第二章 F#基础-第二十一节 类型推理
- F#入门-第二章 F#基础-第十五节 记录
- F#入门-第二章 F#基础-第九节 while循环
- F#入门-第二章 F#基础-第一节 基本数据类型
- F#入门-第二章 F#基础-第十三节 元组
- F#入门-第二章 F#基础-第十七节 异常(一)
- java基础入门-动态绑定-调用方法的过程
- Java基础入门- 运算符与判断语句
- ios入门攻略 07篇 C语言基础【循环结构之for语句,打印九九乘法表】
- 源码-PL/SQL从入门到精通-第四章-PL/SQL控制语句(基础中的基础)
- oracleI基础入门(6)--sql语句-distinct