F # - Типы данных
Типы данных в F # можно классифицировать следующим образом:
- Интегральные типы
- Типы с плавающей запятой
- Типы текста
- Другие типы
Интегральный тип данных
В следующей таблице представлены интегральные типы данных F #. В основном это целые типы данных.
F # Тип | Размер | Спектр | пример | Замечания |
---|---|---|---|---|
сбайт | 1 байт | От -128 до 127 | 42 года -11лет |
8-битное целое число со знаком |
байт | 1 байт | От 0 до 255 | 42гр 200гн |
8-битное целое число без знака |
int16 | 2 байта | От -32768 до 32767 | 42с -11 с |
16-битное целое число со знаком |
uint16 | 2 байта | От 0 до 65 535 | 42us 200us |
16-битное целое число без знака |
int / int32 | 4 байта | От -2 147 483 648 до 2 147 483 647 | 42 -11 |
32-битное целое число со знаком |
uint32 | 4 байта | От 0 до 4 294 967 295 | 42u 200u |
32-битное целое число без знака |
int64 | 8 байт | -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 | 42L -11L |
64-битное целое число со знаком |
uint64 | 8 байт | От 0 до 18 446 744 073 709 551 615 | 42UL 200UL |
64-битное целое число без знака |
Bigint | Минимум 4 байта | любое целое число | 42I 1499999 9999999 9999999 9999999 9999I |
целое число произвольной точности |
пример
(* 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 до ± 3,4e38 | 42.0F -11.0F |
32-битное число с плавающей запятой со знаком (7 значащих цифр) |
плавать | 8 байт | От ± 5,0e-324 до ± 1,7e308 | 42,0 -11,0 |
64-битное число с плавающей запятой со знаком (15-16 значащих цифр) |
десятичный | 16 байт | От ± 1,0e-28 до ± 7,9e28 | 42,0 млн -11,0 млн |
128-битное число с плавающей запятой со знаком (28-29 значащих цифр) |
BigRational | Минимум 4 байта | Любое рациональное число. | 42N -11N |
Рациональное число произвольной точности. Для использования этого типа требуется ссылка на FSharp.PowerPack.dll. |
пример
(* 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 | 'Икс' '\ t' |
Одиночные символы Юникода |
строка | 20 + (2 * длина строки) байтов | От 0 до примерно 2 миллиардов символов | "Здравствуйте" "Мир" |
Текст Unicode |
пример
let choice = 'y'
let name = "Zara Ali"
let org = "Tutorials Point"
printfn "Choice: %c" choice
printfn "Name: %s" name
printfn "Organisation: %s" org
Когда вы компилируете и выполняете программу, она дает следующий результат:
Choice: y
Name: Zara Ali
Organisation: Tutorials Point
Другие типы данных
В следующей таблице представлены некоторые другие типы данных F #.
F # Тип | Размер | Спектр | пример | Замечания |
---|---|---|---|---|
bool | 1 байт | Только два возможных значения, истина или ложь | правда ложный |
Хранит логические значения |
пример
let trueVal = true
let falseVal = false
printfn "True Value: %b" (trueVal)
printfn "False Value: %b" (falseVal)
Когда вы компилируете и выполняете программу, она дает следующий результат:
True Value: true
False Value: false