问题是:我无法弄清楚错误在显示时指的是什么
这是错误: source_file.fs(10,5):错误FS0010:绑定中意外的关键字“ if”。预期为'='或其他令牌。
而且我一直在研究此错误和正确的语法。
现在,我希望从程序的一般外观上可以明显看出我想要做的事情。
了解正确的语法非常有用,因为Microsoft的文档不是很好。
既然是这种情况,我就是不明白有什么问题。
open System
let one = "one"
let two = "two"
if oneortwo one then printfn one + " 1"
else printfn two + " 2"
let oneortwo(a : string)
if a = "one" then return true
elif a = "two" then return false
return false
答案 0 :(得分:6)
F#是一种基于表达式的语言,这意味着所有内容都有一个值(返回值)。 F#也是静态类型,因此返回的所有内容都是特定类型。
由于所有内容都是表达式,因此不使用return
关键字。函数主体中的最后一个表达式是返回值。
if ... then ... else
也是如此:每个分支都必须返回一个值并且具有相同的类型。
您的函数的正确语法是
let oneortwo a =
if a = "one" then true
else false
Scott Wlaschin的网站F# for fun and profit
是学习F#的绝佳来源