我是否有辦法用一個內置的Scala函式來取代myOptionGet函式。
但又不使代碼更加冗長...?:) 并保持與pipe的函式鏈。
我發現用Option.get替換并不奏效。
package playground
import scala.util.chaining.scalaUtilChainingOps
object TEST123 {
def main(args: Array[String])。) Unit = {
def myOptionGet[T](x: Option[T])。) T = x.get
Some("abc") pipe
myOptionGet管道
println
//列印:abc。
}
}
uj5u.com熱心網友回復:
是的,通過使用lambda可以使代碼不那么冗長:
Some("abc"/span>) pipe
((o: Option[String]) => o.get) pipe
println
或者用一個占位符更短:
Some("abc"/span>) pipe
(_.get) 管道
println
然而,正如@cchantep在評論中指出的,你不應該使用.get,因為它是不安全的。你應該保留Option型別來表示該值可能不存在(這是Java的空指標技術的安全變體),或者,如果你有一個合理的默認值,使用myOption.getOrElse("N/A")。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/309095.html
標籤:
上一篇:如何在垂直方向上旋轉所有物件?
