如何在匹配子句中将-1定义为uint64?

Moo*_*ght 2 f#

let myuint64 = 10uL
match myuint64 with
| -1   -> ()
| _    -> ()

如何将给定的-1定义为uint64值?

ssp*_*ssp 6

> match 0UL-1UL with
-   |System.UInt64.MaxValue -> "-1"
-   |_ -> "???"
- ;;
val it : string = "-1"
Run Code Online (Sandbox Code Playgroud)


ang*_*son 5

让我单独留下这样一个事实:你不能用一个只能存储正值的数据类型来表示负值(当然是零).

另一方面,如果将它存储在有符号值中,则-1将被存储为所有位设置.

基本上,我假设你想要找到一种方法来表示-1作为一个逐位值,它将与-1作为有符号值兼容.

那么,在C#和C/C++语法中,该值将为0xffffffffffffffff.究竟如何在F#中指定我不知道.