приведение литерала к байту в F # - PullRequest
0 голосов
/ 31 января 2011

Вот мой фрагмент кода:

let targetMeasure (usesPercent:Nullable<byte>) value =
            match usesPercent.Value with
            | 0 -> sprintf "$%A" value
            | _ -> sprintf "%A%%" value

Попытка сопоставить «usingPercent» с 0, но 0 должен быть байтом Это всегда смущало меня в F #. Я перестаю обнуляться, но тогда значения не одного типа. Как мне обойти это?

Ответы [ 2 ]

6 голосов
/ 31 января 2011

Вы можете создать байтовый литерал, написав 0uy.(Довольно) полный список числовых литералов печатается F # Interactive, если вы пишете недопустимые (например, 0z).Тогда вы получите:

Примеры форматов: 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I.

Для целых чисел довольно легко расшифровать u обозначает беззнаковые и y, s, (ничего), L обозначает 8-битные, 16-битные, 32-битные и 64-битные соответственно.

3 голосов
/ 31 января 2011
let targetMeasure (usesPercent:Nullable<byte>) value =
    match usesPercent.Value with
    | 0uy -> sprintf "$%A" value
    | _ -> sprintf "%A%%" value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...