惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
V
V2EX
博客园 - 【当耐特】
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
量子位
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
月光博客
月光博客
I
InfoQ
WordPress大学
WordPress大学
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
小众软件
小众软件
罗磊的独立博客
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Dart

Dart 中的这个语法特性是什么时候推出的? deno 和 dart 好像啊 [转] Dart 服务器端开发 、 Dart 客户端开发 、Dart 浏览器端开发 和 Dart 云开发 用 Dart 重写了一个原本用 JavaScript 做的小应用 最近学习 Dart 语言,分享一下心得 (入门级) js 转 dart 编译器哪家强? Fuchsia OS 预计还有 75 天后发布 凑热闹, dart 适合做后台吗 [Flutter/Dart] 关于 dart 异步任务执行顺序的问题 Flutter 资料分享 有没有 Dart 的大佬想要写书的,合作吗? Dart/Flutter 资料精选 [转] 为什么 Flutter 会选择 Dart ? Dart 在 fuchsia os 上的应用
使用了下 Dart 语言,发现一些特性的设计得非常缜密,例如 Li...
yech1990 · 2020-03-09 · via Dart

就拿大量使用 List Comprehension 的 Python 做比较,

  • Dart 的一个 List Comprehension 里面可以包含多个“逻辑”
  • “逻辑”的结果可以为空

这些特性 Python 需要分为多个 List Comprehension 且外层嵌套逻辑来实现,比如产生这样的一个 List:

( Dart 的实现)

void main() {
  print([
    if (2 > 1) 222 else 333,
    if (2 > 3) 444,
    for (int i in Iterable.generate(10)) if (i % 3 == 1) i,
    for (int i in Iterable.generate(10, (x) => x + 100)) if (i % 2 == 0) i
  ]);
}

output: [222, 1, 4, 7, 100, 102, 104, 106, 108]

https://dartpad.dev/540d15e9a25afb2159ee1b380e98d906

( Python 的实现)

print(
    [if (2 > 1) 222 else 333] + 
    ([444] if (2 > 3) else []) +
    [i for i in range(10) if i % 3 == 1] +
    [i + 100 for i in range(10) if (i + 100) % 2 == 0]
)