gpt4 book ai didi

f# - 如何在扩展方法中传递可选参数?

转载 作者:行者123 更新时间:2023-12-04 14:03:02 26 4
gpt4 key购买 nike

此代码不起作用,因为我得到的选项可选 参数混淆了。

如何将选项传递给可选参数?

type Foo() = 
member this.Bar(?name : string, ?number : int) =
let name = defaultArg name "johndoe"
let number = defaultArg number 0

name + "-" + string number



[<AutoOpen>]
module FooExtensions =

open System

type Foo with
member this.Bar(?name : string, ?numberAsString : string) =
let number =
numberAsString
|> Option.map Int32.Parse

this.Bar(name=name, number=number) // Invalid

最佳答案

您可以在调用方法时将问号前缀放在命名参数上,以指示您希望将值作为选项传递。

this.Bar(?name=name, ?number=number)

关于f# - 如何在扩展方法中传递可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69403475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com