LoginSignup
8
8

More than 5 years have passed since last update.

Scalaの小ネタ: 「これ知ってるのはあまりいないでしょ」っていうimportの書き方見つけた

Last updated at Posted at 2015-01-05

結論から言うと、importに変数が使えるだけのこと。
型名に変数が使えるのは知ってたけど、これはついさっき知った。

val list = List(1, 2, 3)
import list._
foreach(println)
val x = map(_ * 2)
mkString("-")

知ったきっかけは、PlayでSeleniumを使ったテストを書いてたとき。

// コードはPlayのsamplesから拝借
running(...) { browser =>
  browser.$("#name").text("Bob")
  browser.$("#submit").click()

  browser.$("dl.error").size must equalTo(1)
  browser.$("dl#repeat_field dd.error").first.getText must equalTo("Numeric value expected")
  browser.$("#name").first.getValue must equalTo("Bob")

  browser.$("#repeat").text("xxx")
  browser.$("#submit").click()
}

いちいちbrowserと打つのが面倒臭かったので、メソッド名だけで書けないかと思い、変数名でimportしてみたら通ってむっちゃ驚いた。これでテストコードは、jQueryライクの素敵なコードへと変身を遂げた。

running(...) { browser =>
  import browser._
  $("#name").text("Bob")
  $("#submit").click()

  $("dl.error").size must equalTo(1)
  $("dl#repeat_field dd.error").first.getText must equalTo("Numeric value expected")
  $("#name").first.getValue must equalTo("Bob")

  $("#repeat").text("xxx")
  $("#submit").click()
}
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8