我经常发现自己在做以下事情:
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"