我正在设计程序。我是Scala的新手,但似乎使用以下命令处理了可选参数:
def f1(my_string: Option[String] = None) = {
// Maybe do some pattern matching here to extract the value
}
但是,对于最终用户来说,这很丑陋,因为他们将需要像这样调用此函数:
f1(Some("foo")
是否有一种技术或模式可以将其转换为:
f1("foo"))
并且仍然可以使用可选参数吗?即f1()也可以吗?
我问的原因是,我显然使用了Scala库,在该库中不需要添加显式的Some(..),但是在它们的源代码中,它们已经定义了上述功能。我个人会使用默认参数,但会徘徊为什么这是一种设计模式。
代替Option
,您可以重载该方法。
f1() :ReturnType = {...}
f1(arg:String) :ReturnType = {...}
诸如此类的呼叫中Option
的语法成本>
f1(Some("foo"))
与大型代码库中的空指针异常的最小风险值相比,[[是微不足道的。图灵奖得主Hoare,appologised
我称之为我十亿美元的错误。这是零的发明 参考于1965年。
only