unapply

    18熱度

    2回答

    我想了解什麼是斯卡拉與案例類,使他們以某種方式免疫鍵入擦除警告。 假設我們有以下簡單的類結構。這基本上是一個Either: abstract class BlackOrWhite[A, B] case class Black[A,B](val left: A) extends BlackOrWhite[A,B] case class White[A,B](val right: B) ext

    13熱度

    1回答

    對象L1以下的作品。我可以通過傳入可變參數「創建」L1,這很好,但我希望能夠使用相同的語法分配到L1。不幸的是,我在這裏完成的方式需要在L1內嵌套Array的醜陋語法。 object L1 { def apply(stuff: String*) = stuff.mkString(",") def unapply(s: String) = Some(s.split(","))

    33熱度

    2回答

    爲什麼Scala既有unapply也有unapplySeq?兩者有什麼區別?我應該什麼時候比另一個更喜歡一個?

    8熱度

    1回答

    我希望能夠做到這一點: scala> val Int(i) = "1" i: Int = 1 但Int沒有一個unapply方法。 我找到了this answer,它給出瞭如何隱式添加方法到現有對象的說明,所以我試了一下。他們提供的解決方案的工作,但不幸的是不適合模式匹配。下面是我有: object UnapplyInt { val IntRE = """^(\d+)$""".r

    5熱度

    4回答

    比方說,我有這樣的集合: val a = Array(Array(1,2,3,4,5),Array(4,5),Array(5),Array(1,2,6,7,8)) 有沒有辦法來定義一個提取器,其將在以下方式工作: a.foreach(e => { e match { case Array(ending with 5) => case _ => }

    18熱度

    3回答

    考慮這個類: class DateTime(year: Int, month: Int, day: Int)(hour: Int, minute: Int, second: Int) 會如何unapply方法的樣子,如果我想匹配反對的東西,如: dt match { case DateTime(2012, 12, 12)(12, _, _) => // December 12th 2

    8熱度

    1回答

    我想要一個提取器隱式轉換其參數,但它似乎不工作。考慮這個非常簡單的例子: case class MyString(s: String) {} implicit def string2mystring(x: String): MyString = new MyString(x) implicit def mystring2string(x: MyString) = x.s object A

    13熱度

    4回答

    基本上,我希望能夠建立一個自定義提取器,而不必在使用它之前將它存儲在變量中。 這不是我如何使用它的真實例子,它更可能用於正則表達式或其他字符串模式(如構造)的情況,但希望它解釋我在尋找什麼: def someExtractorBuilder(arg:Boolean) = new { def unapply(s:String):Option[String] = if(arg) Some(s