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在他或她的答案中写的.

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...