在Scala中,下劃線有什么用途?我看過名單進行的調(diào)查Scala-lang.org并注意到一個奇怪的問題:“你能說出“_”的所有用途嗎?“.你能嗎?如果是,請在這里做。請舉例說明?!?
3 回答

白板的微信
TA貢獻1883條經(jīng)驗 獲得超3個贊
存在類型
def foo(l: List[Option[_]]) = ...
較高類型參數(shù)
case class A[K[_],T](a: K[T])
忽略變量
val _ = 5
忽略參數(shù)
List(1, 2, 3) foreach { _ => println("Hi") }
忽略自我類型的名稱
trait MySeq { _: Seq[_] => }
通配符模式
Some(5) match { case Some(_) => println("Yes") }
插值中的通配符模式
"abc" match { case s"a$_c" => }
模式中的序列通配符
C(1, 2, 3) match { case C(vs @ _*) => vs.foreach(f(_)) }
通配符進口
import java.util._
隱藏進口品
import java.util.{ArrayList => _, _}
將信件加入操作員
def bang_!(x: Int) = 5
賦值算子
def foo_=(x: Int) { ... }
占位符語法
List(1, 2, 3) map (_ + 2)
方法值
List(1, 2, 3) foreach println _
將按名稱調(diào)用的參數(shù)轉(zhuǎn)換為函數(shù)
def toFunction(callByName: => Int): () => Int = callByName _
默認初始化器
var x: String = _ // unloved syntax may be eliminated
foo(_)
foo _
trait PlaceholderExample { def process[A](f: A => Unit) val set: Set[_ => Unit] set.foreach(process _) // Error set.foreach(process(_)) // No Error}
process _
A
(_ => Unit) => ?
_
process(_)
foreach
_ => Unit
是_
- 3 回答
- 0 關(guān)注
- 732 瀏覽
添加回答
舉報
0/150
提交
取消