3

在 Perl 我可以做

my @l = qw( str1 str2 str3 str4 )

在红宝石中

l = %w{ str1 str2 str3 str4 }

但在 Scala 中,我似乎陷入了困境

val l = List( "str1", "str2", "str3", "str4" )

我真的需要所有这些"s 和,s 吗?

4

1 回答 1

16

你可以做

implicit class StringList(val sc: StringContext) extends AnyVal {
  def qw(): List[String] = 
    sc.parts.flatMap(_.split(' '))(collection.breakOut)
}

qw"str1 str2 str3"

或通过隐式类:

implicit class StringList(val s: String) extends AnyVal {
  def qw: List[String] = s.split(' ').toList
}

"str1 str2 str3".qw

(两者都需要 Scala 2.10,尽管第二个可以适应 Scala 2.9)

于 2013-01-31T19:33:45.373 回答