是否可以将第一个参数传递给多参数函数? 例如
date
是否可以将DateTime.ParseExact( , "yyyyMMDD", CultureInfo.InvariantCulture)
导入
0.974
答案 0 :(得分:9)
正如@yuyoyuppe在his/her answer中解释的那样,你不能直接管道进入ParseExact
,因为它是一种方法,因而不是咖喱。
定义一个curried的适配器函数通常是个不错的选择,但是如果你只需要在本地使用它,你也可以使用它来管道:
let res =
date |> (fun d -> DateTime.ParseExact(d, "yyyyMMdd", CultureInfo.InvariantCulture))
为您提供DateTime
值:
> res;;
val it : DateTime = 01.03.2016 00:00:00
答案 1 :(得分:8)
来自this:
方法通常使用传递参数的元组形式。这实现了 从其他.NET语言的角度来看,结果更清晰,因为 元组表单与.NET方法中传递参数的方式相匹配。
由于你不能直接接受一个接受元组的函数,你必须包装ParseExact
来做那个:
let parseExact date = DateTime.ParseExact(date, "yyyyMMDD", CultureInfo.InvariantCulture)
也许不相关,但输出参数可以这样绑定:
let success, value = Double.TryParse("2.5")
请注意,TryParse
接受第二个参数为byref
的元组。