拜托,有人能解释一下为什么这里的函数类型被推断为字符串->字符串吗?
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
但我真的知道这将是一个字符串