[英]F# constructor syntax
当使用.net类时,有些情况下我们不需要括号来传递单个参数,例如
let foo = DirectoryInfo "boo"
但是使用单个参数稍微复杂一些,我们确实需要括号...当这是真的时,是否有人知道解析规则?
在F#中,所有函数都只使用一个参数。 现在这可能有点令人困惑,因为你可以拥有一个似乎需要多个参数的函数,但实际上你传递的是一个元组的参数。
这是一个构造函数的简单示例,它们看起来像是带有多个参数:
let foo = DirectoryInfo "boo" //passing 1 argument
let foo2 = DirectoryInfo ("boo") //passing 1 argument that is a tuple
let foo3 = StringBuilder ("blah", 100) //passing 1 argument again
let foo4 = StringBuilder "blah" 100 //does not compile
有关此样式的更多信息,请查看MSDN上的Tuples 。
现在,还有另一种稍微不同的方法,使它看起来像一个函数需要超过1个参数。 这称为currying ,在处理F#代码时,您会更频繁地看到它。 这是一个简单的例子 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.