博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Groovy 与 Python 的差异【翻译】
阅读量:6820 次
发布时间:2019-06-26

本文共 1149 字,大约阅读时间需要 3 分钟。

本文内容

  • General 一般
  • Lists 列表
  • Maps 映射
  • Ranges/Slices 范围/片段
  • Object access 对象访问
  • 参考资料

Groovy 是一种基于 JVM 的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

General

Python

Groovy

repr(x)

x.inspect(), x.dump()

x.y if x else None

x?.y

"%(foo)s" % locals()

"${foo}"

Lists 列表

Python

Groovy

not x

!x

x.empty

len(x)

x.size()

for item, idx in enumerate(x): ...

x.eachWithIndex { item, idx -> ... }

Maps 映射

Python

Groovy

{}

[:] // an empty map

Depends:

d if used like: for k in d:

list(d) if list needed

d[iter].keys() explicitly

d.keySet()

d.[iter]values()

d.values()

[k+1 for k in d]

d.collect { k, v -> k+1 }

d = dict(zip(k, v))

k = 1..3

v = 'a'..'c'

d = [:]; k.eachWithIndex { it, i -> d[it] = v[i] }

println d // [1:"a", 2:"b", 3:"c"]

Ranges/Slices 范围/片段

Python

Groovy

range(3)

0..<3

range(1, 3+1)

1..3

range(0, 10, 2)

not represented as a data type but you can use

0.step(10, 2) {...}

"abcdef"[3:]

"abcdef"[3..-1]

Object access 对象访问

Python

Groovy

m = 'strip'; getattr(' ! ', m)()

m = 'trim'; ' ! '."$m"()

args = ('a', 2); 'abcabc'.find(*args)

args = ['a', 2]; 'abcabc'.indexOf(*args)

参考资料

转载地址:http://nzozl.baihongyu.com/

你可能感兴趣的文章
Linux 下编译安装 MySQL(Percona Server) 5.6
查看>>
protel99se 元件名系表/仿真元件库--分立元件库中英文对照
查看>>
Linux自学笔记——文件共享之NFS
查看>>
磁盘分区与文件系统
查看>>
有趣的MyBatis——分页参数RowBounds
查看>>
MySQL使用xtrabackup备份时报错'Too many open files'
查看>>
CSS在不同浏览器下实现颜色渐变效果
查看>>
Laravel 深入理解路由和URL生成
查看>>
golang通过http端口访问hadoop
查看>>
jar冲突解决方案
查看>>
“996”工作制热议与奋斗者协议
查看>>
我的友情链接
查看>>
MySqL数据库
查看>>
【资料整理】cisco [OSI, IP Address, Network Segment, Subnet Mask]
查看>>
MyBatis使用Generator自动生成代码
查看>>
Azure运维系列 5:国际版与中国版进行数据迁移
查看>>
Hadoop运维记录系列(三)
查看>>
poi的常用方法
查看>>
[error]: invalid PID number "" in "/var/run/nginx.pid"
查看>>
linux中find用法十五例
查看>>