加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala是一个更好的println

发布时间:2020-12-16 18:46:26 所属栏目:安全 来源:网络整理
导读:我经常发现自己做的事情如下: println(foo) 当我想做的时候: println foo 编译器不允许这样做. 另外,println是满口的,我真的只想说: echo foo 因此,在基础包对象中,我创建了println的echo版本: def echo(x: Any) = Console.println(x) 很容易,有回声应用
我经常发现自己做的事情如下:

println(foo)

当我想做的时候:

println foo

编译器不允许这样做.

另外,println是满口的,我真的只想说:

echo foo

因此,在基础包对象中,我创建了println的echo版本:

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非常好用.

YEARS LATER EDIT:另一个几乎解决方案,使用StringContext:

implicit class PimpMyString(sc: StringContext) {
  def echo(args: Any*) = println(sc.raw(args: _*))
}

echo"Hello World"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读