F# 学习笔记(1/n)
算术运算
F#中的基本数据类型和C#中的简单类型非常相似,例如 doule对应了CLR中的System.Double类型。需要注意的是在F#中有三个数据类型:bigint,bignum以及unit。bigint是任意的大整数等同于Math.BigInt,使用的时候需要在数值后加上“I”后缀。bignum是任意精度的有理数,等同于Math.BigNum类型。使用的时候需要在数值后加上“N”后缀。unit表示只有一个值的类型,常常用“()”来表示,对应的.Net 名称为 Core.Unit。
操作符
除了常见的4则运算以及%余数运算符,还有“-”取负数运算符,例如 -(5+6) 输出为-11。
以上代码展示了如何定义参数和返回值使用的不同类型。
第一个addresult默认都是int类型,第二个定义其中a参数使用float类型,为了保证精度完整性,所以整个函数返回的仍然是float类型,第三个是第二个的显式返回类型定义。
位操作符
操作符 |
含义 |
C# |
&&& |
按位与运算 |
& |
||| |
按位或运算 |
| |
^^^ |
异或运算 |
^ |
~~~ |
按位求补 |
~ |
<<< |
左移运算符 |
<< |
>>> |
右移运算符 |
>> |
简单字符串操作
F# 的字符串类型是在.Net类型基础上简化得来的,它的存储形式为一组Unicode UTF-16字符序列。既然是字符序列,那么我们就可以通过索引指针的方式访问其中任意位置的字符。使用字符串时,除了可以使用C#常用的表达方式之外,还可以使用形如”abc”B这样的表达方式,来表示字符串abc将转化为byte[]数组。
如果想表示称字符Char类型,如同C#一样,使用单引号,例如let MyChar = ‘A’;;。
F# 同样支持转移字符,这方面和C#在语法上没有多大区别。例如”"r” 表示回车,”"udddd”表示Unicode编码,”"Udddddddd”表示长Unicode编码(其中d表示数字)。
字符串支持 +方式的连接,也可以直接使用StringBuilder类来Append字符串。
字符串一旦创建完毕,不可以通过索引的方式修改其中的内容。如下图所示:
下面演示如何使用StringBuilder来构建不定长度的字符串
以上代码初始化st变量是一个StringBuilder类型,通过Append方式附加字符串,最后使用ToString方法输出。