F# 函数返回值上的点运算符

F# 函数返回值上的点运算符,f#,F#,你能对一个函数的返回值应用点运算符并从那里链接它吗 比如说 type Person = { name: string } let getPerson = let person = {name = "John Doe"} person sprintf "%s" getPerson().name 你能对一个函数的返回值应用点运算符并从那里链接它吗 它取决于函数的返回值。在您的例子中,它是一种记录类型,答案是肯定的:您可以使用点语法访问它的字段 不过,在您的示例中有两个问

你能对一个函数的返回值应用点运算符并从那里链接它吗

比如说

type Person = {
    name: string
}

let getPerson =
    let person = {name = "John Doe"}
    person

sprintf "%s" getPerson().name
你能对一个函数的返回值应用点运算符并从那里链接它吗

它取决于函数的返回值。在您的例子中,它是一种记录类型,答案是肯定的:您可以使用点语法访问它的字段

不过,在您的示例中有两个问题
getPerson
是一个
Person
记录值,而不是返回
Person
记录的函数。在您的示例中,您只需添加一个单元参数即可使其成为函数:

let getPerson () =
    let person = {name = "John Doe"}
    person
您需要将函数调用和点语法包装在括号中,以将其传递给
sprintf

sprintf "%s" (getPerson().name)