Kotlin Reference (三) Coding Conventions
most from reference
命名规则
1.使用驼峰式命名规则,尽量避免在命名中使用下划线
2.类型以大写字母开头
3.方法和属性以小写字母开头
4.使用4个空格缩进
5.public的方法加上注释说明,以便他们能出现在Kotlin Doc中
冒号
分隔子类和父类的冒号前面应该加上一个空格,分隔对象实体和类的冒号前面没有空格
interface Foo<out T : Any> : Bar {
fun foo(a: Int): T
}
Lambdas
在Lambda表达式中,空格用于在大括号周围(前后都有空格),以及分隔参数的箭头,如果可能,一个Lambda表达式应该在括号之外传递。
list.filter { it > 10 }.map { element -> element * 2 }
在比较短而且不是嵌套的Lambda表达式中,推荐使用it关键字代替直接重新定义变量。在嵌套的Lambda的表达式中,参数应该始终明确。
类头文件格式
带有很少参数的类可以写成一行
class Person(id: Int, name: String)
带有很多参数的类,每个属性必须都单独缩进成一行,并且最后的大括号应该单独成行。如果我们使用继承父类的构造函数,调用或实现的接口列表应该和括号位于同一行。
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name) {
// ...
}
对于多接口,父类的构造函数应该写在最前面,然后各接口的实现方法应该都在不同的行。
class Person(
id: Int,
name: String,
surname: String
) : Human(id, name),
KotlinMaker {
// ...
}
构造函数的参数可以用用常规缩进或延续缩进(常规缩进的两倍)
Unit
如果一个方式的返回值是Unit(没有返回值),可以省略
fun foo() { // ": Unit" is omitted here
}
方法和属性
在某些情况下,没有参数的函数可以和只读属性互换。虽然语义相似,但也有一些风格上的约定。
更趋向选择属性而不是方法的一些情况:
1.没有throw Exception
2.有o(1)复杂度
3.计算简便(第一次运行缓存)
4.调用的时候返回相同的结果
Kotlin Reference (三) Coding Conventions的更多相关文章
- Kotlin Reference (七) Returns and Jumps
most from reference kotlin有三个结构跳跃表达式 return 默认情况下,从最近的封闭函数或匿名函数返回. break 跳出整个循环 continue 跳出本次循环,进行下一 ...
- C# Coding Conventions, Coding Standards & Best Practices
C# Coding Conventions, Coding Standards & Best Practices Cui, Chikun Overview Introduction This ...
- JavaScript Patterns 2.9 Coding Conventions
It’s important to establish and follow coding conventions—they make your code consistent, predictabl ...
- C# Coding Conventions(译)
C# Coding Conventions C#编码规范 Naming Conventions 命名规范Layout Conventions 布局规范Commenting Conventions 注释 ...
- 浅谈Kotlin(三):类
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 已经学习了前 ...
- Kotlin Reference (六) Control Flow
most from reference if表达式 在kotlin中,if是一个表达式,即它返回一个值.kotlin中没有Java中的三元运算符. // Traditional usage var m ...
- Kotlin Reference (十二) Extensions
most from reference Kotlin与C#和Gosu类似,提供了扩展一个新功能的类,而不必继承类或使用任何类型的设计模式,如Decorator(装饰者模式).这是通过称为扩展的特殊声明 ...
- Kotlin Reference (十一) Visibility Modifiers
most from reference 类,对象,接口,构造函数,函数,属性及setters具有可见性修饰符(getter总是具有和属性一样的可见性).在kotlin中油4个可视化修饰符:privat ...
- Kotlin Reference (十) Interfaces
most from reference 接口 Kotlin中的接口非常类似于Java8,它们可以包含抽象方法的声明以及方法实现.与抽象类不同的是接口不能存储状态.它们可以具有属性,但这些需要是抽象的或 ...
随机推荐
- 索引原理-btree索引与hash索引的区别
btree索引与hash索引的区别,之前不清楚,mark一下. Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多 ...
- 前端初级技能No.1 [切图]
“切图”是指通过测量设计稿,从设计稿中提取图片等方式为页面开发提供支持的过程. 整个“切图”过程主要分为以下五个主要步骤: 分析设计图: 测量元素: 提取图片: 保存图片: 图片优化与合并: 1.分析 ...
- MysQL使用一查询
简介 查询的基本语法 select * from 表名; from关键字后面写表名,表示数据来源于是这张表 select后面写表中的列名,如果是*表示在结果中显示表中所有列 在select后面的列名部 ...
- shell小脚本--从laod博客更新hosts文件
#!/bin/bash #-------------------------------------------- # name: change-hosts.sh #----------------- ...
- zookeeper项目使用几点小结
背景 前段时间学习了zookeeper后,在新的项目中刚好派上了用场,我在项目中主要负责分布式任务调度模块的开发,对我自己来说是个不小的挑战. 分布式的任务调度,技术上我们选择了zookeeper,具 ...
- C# 往string [] arr 数组插入元素
string [] arr ; List<string> _list = new List<string>(arr ); for(int i ;i<10;i++) { _ ...
- 【网络优化】Batch Normalization(inception V2) 论文解析(转)
前言 懒癌翻了,这篇不想写overview了,公式也比较多,今天有(zhao)点(jie)累(kou),不想一点点写latex啦,读论文的时候感觉文章不错,虽然看似很多数学公式,其实都是比较基础的公式 ...
- Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍
参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任 ...
- intent Filter
intent Filter 一.介绍 如果一个 Intent 请求在一片数据上执行一个动作, Android 如何知道哪个应用程序(和组件)能用来响应这个请求呢? Intent Filter就是 用来 ...
- 《Think in Java》(十七)容器深入研究
阿西吧,这一章好长啊,感觉看了快一个月了吧!JDK 自带的容器框架真是很好很强大啊,这一章看得有点蒙蒙的,接下来还得去看看官方文档啊!