IT干货网

Scala 更好的 println

jirigala 2025年12月25日 编程设计 38 0

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

println(foo) 

当我想这样做时:
println foo 

编译器不允许这样做。

还有, println 是一口,我真的只想说:
echo foo 

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

很简单,回声应用广泛,很棒。

现在,如何调用 echo 而无需将 Any 包装在括号中打印?

请您参考如下方法:

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" 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!