Scala,部分函数
|
除了通过
case
语句,是否有任何方法可以创建PartialFunction
?
我很好奇,因为我想表达以下内容(标量伪向前!)...
val bi = BigInt(_)
if (bi.isValidInt) bi.intValue
...作为部分功能,并在
val toInt : PartialFunction[String, Int] = {
case s if BigInt(s).isValidInt => BigInt(s).intValue
}
似乎多余,因为我两次创建了4ѭ。
没有找到相关结果
已邀请:
5 个回复
磋判粗惊
另一种选择是(这可能会回答一个问题,即是否可以使用
文字创建create0ѭ):
但是,由于部分函数的想法只是部分定义,因此最终您仍然会做多余的事情-您需要创建一个大int来测试其是否有效,然后在函数中再次创建big int的应用程序... 我在Github上看到一个项目,试图通过缓存ѭ9的结果来解决这个问题。如果您遵循基准测试,您会发现它比默认的Scala实现要慢:) 因此,如果您想避开
与
的双重性质,则应该直接使用提供(
)的(完整)函数。
痰降锭骂奸
密切相关,您还想查看以下答案以获取有关cond和condOpt的信息:
芜任亮蜡
\“ longhand \”:
队辅坟阮阶
弦砂牧扁