带参数语法的F#if语句函数

RvB*_*ama 1 f# if-statement compilation

问题是:我无法弄清楚它在diplays时引用的错误

以下是错误: source_file.fs(10,5):错误FS0010:绑定时出现意外关键字"if".预期'='或其他令牌.

我一直在研究这个错误和正确的语法.

我希望,从程序的整体外观来看,我想做的事情是显而易见的.

知道正确的语法会很好,因为microsofts文档不是很好.

看到这种情况,我只是不明白什么是错的.

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
Run Code Online (Sandbox Code Playgroud)

nil*_*irk 6

F#是一种基于表达式的语言,这意味着一切都有一个值(返回一些东西).F#也是静态类型的,因此返回的所有内容都是特定类型.

由于所有内容都是表达式,因此return不使用关键字.函数体中的最终表达式是返回值.

这也适用于if ... then ... else:每个分支必须返回一个值并且属于同一类型.

您的函数的正确语法是

let oneortwo a =
    if a = "one" then true
    else false
Run Code Online (Sandbox Code Playgroud)

学习F#的最佳来源是Scott Wlaschin的网站F#,以获得乐趣和利润