# Leo 语言开发规范总结 **Published by:** [Yaakov](https://paragraph.com/@yaakov/) **Published on:** 2024-10-30 **URL:** https://paragraph.com/@yaakov/leo-5 ## Content 一、代码布局规范1. 缩进要求每级缩进使用 4 个空格。不推荐使用制表符(Tab)。2. 空行使用规则顶层声明之间(如 transition、function、struct、record 和 mapping)需要用单个空行分隔。import 语句之间可以选择性地使用单个空行分隔。文件顶部的最后一个 import 语句后应该跟一个空行。3. 文件结构顺序按照以下顺序组织文件内容:导入语句(Imports)程序声明(Program declaration)映射(Mappings)记录和结构体(Records + Structs)函数和转换(Functions + Transitions)二、命名规范各类型命名方式如下:包名:使用 snake_case(推荐使用单个词)。结构体和记录:使用 CamelCase。结构体和记录成员:使用 snake_case。函数名:使用 snake_case。函数参数:使用 snake_case。变量名:使用 snake_case。输入参数:使用 snake_case。三、语法规范1. 大括号使用开括号总是与声明在同一行,不要将开括号放在新行。2. 分号使用每个语句(包括 return 语句)都必须以分号结束,保持语句结束的一致性。3. 逗号使用当结束定界符出现在单独一行时,应包含尾随逗号,以提高代码的可维护性和可读性。四、条件分支处理推荐做法使用三元表达式而不是 if-else 语句,可以更好地控制电路大小和效率。原因解释Leo 编译器会将 transitions 中的 if-else 语句重写为三元表达式序列,因为底层电路构造不支持分支操作。三元表达式是最经济的条件形式,可以在评估条件之前解析第一个和第二个表达式的值。性能影响使用 if-else 会导致电路创建分支,每个分支都需要完整评估,条件内的每个计算成本都会翻倍。这会显著增加约束数量并降低电路效率。代码示例不推荐:if (condition) { return a; } else { return b; } 推荐:return condition ? a : b; 五、最佳实践建议1. 代码组织保持代码结构清晰,遵循文件元素的标准顺序,使用一致的命名约定。2. 性能优化优先使用三元表达式,避免不必要的条件分支,注意控制电路大小。3. 可维护性保持代码格式的一致性,适当使用空行增加可读性,遵循标准的命名规范。这些规范和最佳实践可以帮助开发者编写更高效、更易维护的 Leo 代码,同时确保生成的电路具有最佳性能。Aleo TwitterAleo DiscordAleo 官网 ## Publication Information - [Yaakov](https://paragraph.com/@yaakov/): Publication homepage - [All Posts](https://paragraph.com/@yaakov/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@yaakov): Subscribe to updates - [Twitter](https://twitter.com/yaakov90691264): Follow on Twitter