所以我正在研究一些示例F#代码,并遇到以下片段:
let divRem a b =
let x = a / b
let y = a % b
(x,y)
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我收到以下错误:
HelloWorld\Program.fs(15,14):错误FS0071:对类型推断变量应用默认类型"int*int"时,类型约束不匹配.类型'(int*int)'不支持任何名为'/'的运算符.考虑添加更多类型约束
但是,做类似的事情
let print n = System.Console.WriteLine(n.ToString())
print (4/2)
Run Code Online (Sandbox Code Playgroud)
结果是
2
为什么整数除法运算在函数定义中不可用?
编辑: 这是无法编译的代码的完整示例.
let divRem a b =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem (5,3))
Run Code Online (Sandbox Code Playgroud)
问题是你在F#中调用函数时不使用逗号,逗号用于创建元组.代码应该是:
let divRem a b =
let x = a / b
let y = a % b
(x,y)
let print n = System.Console.WriteLine(n.ToString())
print (divRem 5 3)
Run Code Online (Sandbox Code Playgroud)