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

从另一个列表生成一个列表,转换Groovy上的每个元素

发布时间:2020-12-14 16:33:54 所属栏目:大数据 来源:网络整理
导读:我在控制器上有以下代码 def db = new Sql(dataSource) def rawLines = db.rows("SELECT name FROM LINES") def lines = [] /*(db.rows returns the values as [NAME:value] */ rawLines.each { lines.add(it.name) } /*Then,use lines */ 我不能忽略这样一
我在控制器上有以下代码

def db = new Sql(dataSource)
    def rawLines = db.rows("SELECT name FROM LINES")
    def lines = []
    /*(db.rows returns the values as [NAME:value] */
    rawLines.each {
        lines.add(it.name)
    }
    /*Then,use lines */

我不能忽略这样一种印象:可能有一些方法可以以更优雅的方式进行,类似于Python中的列表解析:

lines = [ l.name for l in db.rows("SELECT name FROM LINES") ]

不得不声明一个空的列表,然后填充它似乎是最好的做事方式…
有可能做这样的事情,还是Groovy不允许呢?

解决方法

你不能只使用传播操作符,并且做:

lines = rawLines*.name

(见http://docs.groovy-lang.org/latest/html/documentation/index.html#_spread_operator)

(编辑:李大同)

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

    推荐文章
      热点阅读