0

ここで関数型が文字列 -> 文字列であると推測される理由を誰か説明してください。

let myFunc a:string = 
    match a with 
    | "A" -> 1
    | _ -> 0

これは、引数が汎用の場合は正常に機能しますが、:string を追加するとすぐに型が変わります。なんで?

編集: 実際には一致に String.ToUpper() を使用したいので、引数の型を文字列として宣言したいと思います:

let myFunc a:string = 
    match a.ToUpper() with 
    | "A" -> 1
    | _ -> 0

少し厄介な解決策は、これです

let myFunc a = 
    match a.ToString().ToUpper() with 
    | "A" -> 1
    | _ -> 0

しかし、私はそれが文字列になることを本当に知っています

4

1 に答える 1