我经常发现自己在做以下事情:

println(foo)

当我想做的时候:
println foo

编译器不允许这样做。

另外,println令人a舌,我真的只想说:
echo foo

因此,在基本包对象中,我创建了println的回显版本:
def echo(x: Any) = Console.println(x)

足够容易,具有广泛的回声应用。

现在,如何调用echo而不需要将Any包装在parens中进行打印?

最佳答案

object ∊ {def cho(s: Any) {println(s)}}

∊cho "Hello world"

将节省您的手指。

之所以起作用,是因为∊是Unicode Sm集中的数学符号,因此算作operator in Scala,因此在字母数字字符旁边不需要空格。

你也可以
object echo {def -(s: Any) {println(s)}}

echo-"Hello world"

IMO效果很好。

多年后编辑:使用StringContext的另一个几乎解决方案:
implicit class PimpMyString(sc: StringContext) {
  def echo(args: Any*) = println(sc.raw(args: _*))
}

echo"Hello World"

09-05 19:37
查看更多