奇怪的(?)这个函数类型不匹配错误
问题描述:
有人可以解释为什么编译器给我这个错误奇怪的(?)这个函数类型不匹配错误
类型不匹配。期待 '一个[] - >串
但给予 ' 一个[] - > '一个[]
类型 '字符串' 不匹配的类型 '' 一个[]'
在此代码段:
let rotate s: string =
[|for c in s -> c|]
|> Array.permute (function | 0 -> (s.Length-1) | i -> i-1)
而一个低于编译就好:
let s = "string"
[|for c in s -> c|]
|> Array.permute (function | 0 -> (s.Length-1) | i -> i-1)
答
你的第一个片段定义functi在rotate
上,返回类型为string
。
尝试将其更改为:
let rotate (s: string) =
[|for c in s -> c|]
|> Array.permute (function | 0 -> (s.Length-1) | i -> i-1)
在这种形式定义一个字符串参数的函数(我想这是你想要的),并推断返回类型。
谢谢,就是这样。我以为我尝试了括号,但我错了。 – 2013-03-12 23:06:41