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

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

发布时间:2020-12-16 09:09:13 所属栏目:安全 来源:网络整理
导读:是的,这是一个有趣的问题,但我想学习使用集合操作,如map,reduce和fold正确. 我这样做了: scala Range(0,3) map(_=" ") reduceLeft(_+_)res15: java.lang.String = " " 使用集合操作生成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在他或她的答案中写的.

(编辑:李大同)

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

    推荐文章
      热点阅读