在右边赋值
Assign value on the right side
我正在学习 F#,我有以下代码:
type Name = {first:string; last:string} // define a new type
let bob = {first="bob"; last="smith"} // define a value
// single parameter style
let f1 name = // pass in single parameter
let {first=f; last=l} = name // extract in body of function
printfn "first=%s; last=%s" f l
// match in the parameter itself
let f2 {first=f; last=l} = // direct pattern matching
printfn "first=%s; last=%s" f l
// test
f1 bob
f2 bob
我的背景是命令式编程,赋值是这样的:
f = first
但是上面的代码使用
在右侧赋值
first=f
为什么?
此处 - F# 未分配变量,您正在进行模式匹配。
此处的语法遵循您在模式匹配时创建记录的方式 - 请注意以下之间的相似性:
let f2 {first=f; last=l} =
和
let bob = {first="bob"; last="smith"}
还有一个更极端的例子:
let f3 {first="bob"; last="smith"} =
我正在学习 F#,我有以下代码:
type Name = {first:string; last:string} // define a new type
let bob = {first="bob"; last="smith"} // define a value
// single parameter style
let f1 name = // pass in single parameter
let {first=f; last=l} = name // extract in body of function
printfn "first=%s; last=%s" f l
// match in the parameter itself
let f2 {first=f; last=l} = // direct pattern matching
printfn "first=%s; last=%s" f l
// test
f1 bob
f2 bob
我的背景是命令式编程,赋值是这样的:
f = first
但是上面的代码使用
在右侧赋值first=f
为什么?
此处 - F# 未分配变量,您正在进行模式匹配。
此处的语法遵循您在模式匹配时创建记录的方式 - 请注意以下之间的相似性:
let f2 {first=f; last=l} =
和
let bob = {first="bob"; last="smith"}
还有一个更极端的例子:
let f3 {first="bob"; last="smith"} =