电力是一个国家工业运转的核心,所以现在中国、美国各国都在大量投资电力技术。伴随着传统的火电技术发展进入瓶颈,目前各国在核电技术领域进入了新一轮竞争。(...
2025-08-29 0
Starlark语言概述
Starlark是一种小型编程语言,设计为Python的简化变体,主要用于嵌入式集成到应用程序中。有人或许会称其为“语法类似Python的Lua”,但我认为它有许多值得探讨的独特之处。该语言现已开源,并被广泛应用于其他应用程序和公司。作为Starlark的设计与实现负责人,我希望进一步分享它的细节。
def fizz_buzz(n): """打印从1到n的Fizz Buzz数列。""" for i in range(1, n + 1): s = "" if i % 3 == 0: s += "Fizz" if i % 5 == 0: s += "Buzz" print(s if s else i)fizz_buzz(20)
我曾说过它看起来像Python。实际上,这段代码既符合Python 3语法,也是有效的Starlark代码。
与Python类似,Starlark是一种动态类型语言,支持高级数据类型、具有词法作用域的一等函数及垃圾回收。但它比Python简单得多,且不支持大部分Python特性。
根据我在拥有数万开发者的大型代码库中的经验,大多数人无需专门学习即可直接使用该语言。
Starlark提供了诸多保证,这是它与其他主流语言的核心差异。有人可能认为避免非确定性等问题很简单,但实际在大型代码库中这些问题屡见不鲜。
Starlark远比Python简单。其标准库极简,仅包含约30个函数、少量类型及列表、字符串、字典的方法。当然,宿主应用程序可嵌入Starlark时提供额外功能。
主要差异包括:
更多细节可参考语言设计文档。
Starlark常被用作扩展语言(类似Lua)或配置语言。它可作为库集成到其他应用程序中。目前有三种不同语言的实现:
历史上,Google代码库完全基于Makefile构建。随着代码量增长,开发者开始用Python脚本生成Makefile,采用声明式语法。2007年Bazel诞生,依赖Python解释器解析构建脚本。然而,面对可扩展性、性能和维护挑战,我们需要一种提供更强保证的语言。2015年,Laurent Le Brun启动了Starlark的设计与实现,并于2017年将Google内部数十万份Python构建脚本迁移至Starlark。为平滑过渡,尽力保持语言与Python的相似性。
对我分享的文章或者资料干兴趣的读者都可以通过购买专栏建立链接,我会把多年整理的技术资料一并奉上。
相关文章
电力是一个国家工业运转的核心,所以现在中国、美国各国都在大量投资电力技术。伴随着传统的火电技术发展进入瓶颈,目前各国在核电技术领域进入了新一轮竞争。(...
2025-08-29 0
据塔斯社8月27日报道,“索马里卫士”新闻网站援引土耳其驻摩加迪沙大使阿尔佩尔·阿克塔什的消息称,索马里正准备从其领土发射首颗卫星,该卫星为土耳其所有...
2025-08-29 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-29 0
IT之家 8 月 29 日消息,OpenAI 已将其“Realtime API”正式投入生产环境,将其移出测试阶段(Beta)。据IT之家了解,这款...
2025-08-29 0
在全球范围内,目前年度旅客吞吐量超过1亿人次的只有亚特兰大机场。当然了,我国的北京首都机场在2018年、2019年连续两年超过1亿人次。除此之外,就没...
2025-08-29 0
发表评论