2011-01-31 15 views
0

にバイトにリテラルキャスト私のコードスニップです:ここではF#

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

はバイトであることを0と「usesPercent」が、0ニーズに合うようにしようとしています。これはF#でいつも混乱しています。 null可能なものを越えてしまいますが、値は同じ型ではありません。これをどうやって回避するのですか?

+0

すべての「0uy」タイプのものを表示する「リテラル」のドキュメントも参照してください。http://msdn.microsoft.com/en-us/library/dd233193.aspx – Brian

答えて

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

バイトリテラルは、0uyと記述して作成できます。あなたが無効なもの(例えば、0z)を書くと、F#Interactiveによって数値リテラルの(かなり)完全なリストが印刷されます。

サンプルフォーマットには、4、0x4、0b0100、4L、4UL、4u、4s、4us、4y、4uy、4.0,4.0f、4Iが含まれます。整数の

は、u符号なしの略で、ys、(何も)、それぞれ8ビット、16ビット、32ビットと64ビットのためのLスタンドをデコードするのはとても簡単です。

関連する問題