Kotlin 样式

2020-11-25  本文已影响0人  kevinsEegets

格式设置

大括号

表达式

函数

​ 当函数不适合放在一行时,应让每个参数独占一行,如下代码:

fun <T> Iterable<T>.joinToString(
    separator: CharSequence = ", ",
    prefix: CharSequence = "",
    postfix: CharSequence = ""
): String {
    // …一个空白行(即,仅包含对齐的前导星号 (*) 的行)会出现在段落之间,以及成组的块标记(如果存在)前面。
}

属性

​ 一行代码长度限制100个字符,超过此限制需要换行 当属性初始化不适合放在一行时,应在等号(=)后换行,并使用缩进,如下代码:

private val defaultCharset: Charset? =
        EncodingRegistry.getInstance().getDefaultCharsetForPropertiesFiles(file)

超过最大字符换行

​ 一行代码长度限制100个字符,超过此限制需要换行

注释

​ 应将成员或类型注释放在单独的行上,让其紧接在标注的构造前面。

@Retention(SOURCE)@Target(FUNCTION, PROPERTY_SETTER, FIELD)annotation class Global

​ 可以将不带参数的注释放在一行上。

@JvmField @Volatilevar disposable: Disposable? = null

​ 如果只存在一个不带参数的注释,可以将其与声明放在同一行上。

@Volatile var disposable: Disposable? = null@Test fun selectAll() {    // …}

@[...] 语法只能用于明确的使用处目标,并且只能用于将没有参数的两个或更多注释组合在一行中。

@field:[JvmStatic Volatile]var disposable: Disposable? = null一个空白行(即,仅包含对齐的前导星号 (*) 的行)会出现在段落之间,以及成组的块标记(如果存在)前面。

命名规则

常量命名

​ 标有`const`的属性或者保存不可变数据的没有自定义`get`的属性应该用大写、下划线分割命名:

const val MAX_COUNT = 8
val USER_NAME = "UserName"

可变对象使用驼峰命名:

val mutableSet: MutableSet<String> = HashSet()

枚举常量使用大写、下划线分割或驼峰命名

enum class Color { RED, GREEN }

一个空白行(即,仅包含对齐的前导星号 (*) 的行)会出现在段落之间,以及成组的块标记(如果存在)前面。属性的命名遵循单词拼接方式,错误的单词拼写AndroidStudio会进行提示

后备属性

​ 需要后备属性时,其名称应与实际属性的名称完全匹配,只不过带有下划线前缀。如下代码:

private var _table: Map? = null

val table: Map
    get() {
        if (_table == null) {
            _table = HashMap()
        }
        return _table ?: throw AssertionError()
    }

reference:
https://cloud.tencent.com/developer/article/1473220
https://developer.android.com/kotlin/style-guide#naming

上一篇下一篇

猜你喜欢

热点阅读