微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 更好的一个衬垫生成n个空格

是的,这是一个有趣的问题,但我想学习使用集合操作,如map,reduce和fold正确.

我这样做了:

scala> Range(0,3) map(_=>" ") reduceLeft(_+_)
res15: java.lang.String = "   "

使用集合操作生成n个空格的更好,惯用的方法是什么?

解决方法

从技术上讲,以下是“收集操作”,我猜,因为 StringOps在scala.collection.immutable包中:

scala> " " * 3
res1: String = "   "

这里发生的是“”通过scala.Predef.augmentString隐式转换为StringOps的实例,然后调用StringOps上的*方法.

更新:我的意思是这部分是一种玩笑,因为这显然不是你所说的“收集操作” – 这不是像map或reduce这样的高阶函数.我肯定在实际代码中使用我的版本(StringOps版本),但是如果你想使用高阶函数(出于教育原因,类似的问题等),我认为你的版本非常接近于惯用语.我个人一直使用,直到构建范围并减少而不是reduceLeft(因为连接是关联的) – 即,几乎是virtualeyes在他或她的答案中写的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐