Najlepszy samouczek Scala wyciąg (Extractor) W 2024 r. W tym samouczku możesz dowiedzieć się Używa wzór pasujący do ekstrakcji,
Wyciąg jest skonfigurowany tak, aby wyodrębnić parametry obiektu przechodzi do niej z obiektem.
Scala biblioteka standardowa zawiera szereg predefiniowanych ekstraktora, przyjrzymy się im grubsza.
Scala jest metoda ekstrakcji obiekt o Wycofywanie z. Metoda Wycofywanie uznać zastosowanie metody reverse: Wycofywanie przyjmuje obiekt i wyodrębnić wartości z obiektu, wartość wydobytego wartość jest zwykle używany do budowy obiektu.
Poniższy przykład pokazuje adres e-mail obiektu ekstrakcji:
object Test { def main(args: Array[String]) { println ("Apply 方法 : " + apply("Zara", "gmail.com")); println ("Unapply 方法 : " + unapply("Zara@gmail.com")); println ("Unapply 方法 : " + unapply("Zara Ali")); } // 注入方法 (可选) def apply(user: String, domain: String) = { user +"@"+ domain } // 提取方法(必选) def unapply(str: String): Option[(String, String)] = { val parts = str split "@" if (parts.length == 2){ Some(parts(0), parts(1)) }else{ None } } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test Apply 方法 : Zara@gmail.com Unapply 方法 : Some((Zara,gmail.com)) Unapply 方法 : None
Powyższy cel definiuje dwiemetody: Nałożyć i metody cofanie.Nie trzeba stosować metodę za pomocą operatora new do tworzenia obiektów. Więc można skonstruować ciąg "Zara@gmail.com~~HEAD=dobj" testem oświadczenie ( "Zara", "gmail.com").
Metoda Wycofywanie uznać zastosowanie metody reverse: Wycofywanie przyjmuje obiekt i wyodrębnić wartości z obiektu, wartość wydobytego wartość jest zwykle używany do budowy obiektu. Przykłady sposobu używamy wyodrębnić sufiks Wycofywanie nazwę użytkownika i adres e-mail, adresy od obiektu.
Metoda Wycofywanie zwróci None w przychodzącym adres e-mail zamiast instancji strun. Poniższy kod demonstruje:
unapply("Zara@gmail.com") 相等于 Some("Zara", "gmail.com") unapply("Zara Ali") 相等于 None
Kiedy instancji klasy, można wziąć zero lub więcej parametrów, kompilator jest wywoływana, gdy instancja stosować metodę. można określić i zastosować metody z obiektu klasy.
Jak już wspomniano wcześniej, Wycofywanie służy do wyodrębniania wartości podanej przez nas do znalezienia, a wręcz przeciwnie, że zastosowanie operacji. Gdy używamy sprawozdania w dopasowaniu do przedmiotu ekstrakcji, wycofywanie się być wykonywane automatycznie, jak następuje:
object Test { def main(args: Array[String]) { val x = Test(5) println(x) x match { case Test(num) => println(x + " 是 " + num + " 的两倍!") //unapply 被调用 case _ => println("无法计算") } } def apply(x: Int) = x*2 def unapply(z: Int): Option[Int] = if (z%2==0) Some(z/2) else None }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test 10 10 是 5 的两倍!