- 教程
- 概述
- F# - 环境设置( Environment Setup)
- 程序结构
- Basic 语法
- 数据类型
- 变量
- 运算符
- F# - 决策( Decision Making)
- 循环
- F# - 功能( Functions)
- Strings
- Options
- Tuples
- Records
- Lists
- F# - 序列( Sequences)
- Sets
- Maps
- F# - 可区分联合( Discriminated Unions)
- F# - 可变数据( Mutable Data)
- Arrays
- F# - 可变列表( Mutable Lists)
- F# - 可变字典( Mutable Dictionary)
- Basic I/O
- F# - 泛型( Generics)
- F# - 代表( Delegates)
- F# - 枚举( Enumerations)
- F# - 模式匹配( Pattern Matching)
- F# - 异常处理( Exception Handling)
- Classes
- F# - 结构( Structures)
- Operator 重载
- F# - 继承( Inheritance)
- Interfaces
- Events
- Modules
- F# - 命名空间( Namespaces)
- 有用的资源
- 讨论
- Show Example
- Show Example
- Show Example
- Show Example
- Show Example
- if /then statement
- if/then/ else statement
- if/then/elif/else statement
- 嵌套if语句(nested if statements)
- for… to and for… downto expressions
- for … in expression
- While…do循环
- nested 循环
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
数据类型
F#中的数据类型可分为以下几类 -
- 积分类型
- 浮点类型
- 文字类型
- 其他类型
积分数据类型
下表提供了F#的整数数据类型。 这些基本上是整数数据类型。
F#类型 | 尺寸 | 范围 | 例 | 备注 |
---|---|---|---|---|
sbyte | 1个字节 | -128 to 127 | 42y -11y | 8-bit signed integer |
byte | 1个字节 | 0到255 | 42uy 200uy | 8-bit unsigned integer |
int16 | 2个字节 | -32768 to 32767 | 42s -11s | 16-bit signed integer |
uint16 | 2个字节 | 0 to 65,535 | 42us 200us | 16-bit unsigned integer |
int/int32 | 4字节 | -2,147,483,648 to 2,147,483,647 | 42 -11 | 32-bit signed integer |
uint32 | 4字节 | 0 to 4,294,967,295 | 42u 200u | 32-bit unsigned integer |
int64 | 8个字节 | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | 42L -11L | 64-bit signed integer |
uint64 | 8个字节 | 0 to 18,446,744,073,709,551,615 | 42UL 200UL | 64-bit unsigned integer |
bigint | 至少4个字节 | 任何整数 | 42I 1499999 9999999 9999999 9999999 9999I | arbitrary precision integer |
例子 (Example)
(* single byte integer *)
let x = 268.97f
let y = 312.58f
let z = x + y
printfn "x: %f" x
printfn "y: %f" y
printfn "z: %f" z
(* unsigned 8-bit natural number *)
let p = 2uy
let q = 4uy
let r = p + q
printfn "p: %i" p
printfn "q: %i" q
printfn "r: %i" r
(* signed 16-bit integer *)
let a = 12s
let b = 24s
let c = a + b
printfn "a: %i" a
printfn "b: %i" b
printfn "c: %i" c
(* signed 32-bit integer *)
let d = 212l
let e = 504l
let f = d + e
printfn "d: %i" d
printfn "e: %i" e
printfn "f: %i" f
编译并执行程序时,它会产生以下输出 -
x: 1
y: 2
z: 3
p: 2
q: 4
r: 6
a: 12
b: 24
c: 36
d: 212
e: 504
f: 716
浮点数据类型
下表提供了F#的浮点数据类型。
F#类型 | 尺寸 | 范围 | 例 | 备注 |
---|---|---|---|---|
float32 | 4字节 | ±1.5e-45 to ±3.4e38 | 42.0F -11.0F | 32位带符号浮点数(7位有效数字) |
float | 8个字节 | ±5.0e-324 to ±1.7e308 | 42.0 -11.0 | 64位带符号浮点数(15-16位有效数字) |
decimal | 16个字节 | ±1.0e-28 to ±7.9e28 | 42.0M -11.0M | 128位带符号浮点数(28-29位有效数字) |
BigRational | 至少4个字节 | Any rational number. | 42N -11N | 任意精度有理数。 使用此类型需要引用FSharp.PowerPack.dll。 |
例子 (Example)
(* 32-bit signed floating point number *)
(* 7 significant digits *)
let d = 212.098f
let e = 504.768f
let f = d + e
printfn "d: %f" d
printfn "e: %f" e
printfn "f: %f" f
(* 64-bit signed floating point number *)
(* 15-16 significant digits *)
let x = 21290.098
let y = 50446.768
let z = x + y
printfn "x: %g" x
printfn "y: %g" y
printfn "z: %g" z
编译并执行程序时,它会产生以下输出 -
d: 212.098000
e: 504.768000
f: 716.866000
x: 21290.1
y: 50446.8
z: 71736.9
文本数据类型
下表提供了F#的文本数据类型。
F#类型 | 尺寸 | 范围 | 例 | 备注 |
---|---|---|---|---|
char | 2个字节 | U + 0000到U + ffff | 'x' '\t' | Single unicode characters |
string | 20 +(2 *字符串的长度)字节 | 0到大约20亿个字符 | "Hello" "World" | Unicode text |
例子 (Example)
let choice = 'y'
let name = "Zara Ali"
let org = "IOWIKI"
printfn "Choice: %c" choice
printfn "Name: %s" name
printfn "Organisation: %s" org
编译并执行程序时,它会产生以下输出 -
Choice: y
Name: Zara Ali
Organisation: IOWIKI
其他数据类型
下表提供了F#的其他一些数据类型。
F#类型 | 尺寸 | 范围 | 例 | 备注 |
---|---|---|---|---|
bool | 1个字节 | 只有两个可能的值,true或false | true false | Stores boolean values |
例子 (Example)
let trueVal = true
let falseVal = false
printfn "True Value: %b" (trueVal)
printfn "False Value: %b" (falseVal)
编译并执行程序时,它会产生以下输出 -
True Value: true
False Value: false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论