美文网首页
Kotlin 样式

Kotlin 样式

作者: kevinsEegets | 来源:发表于2020-11-25 10:13 被阅读0次

    格式设置

    大括号

    表达式

    • 1、没有elese if/else分支且适合放在一行的if语句不需要大括号

      if (string.isEmpty()) return
      
    • 2、函数主体为空或仅包含一个语句要使用大括号

      if (string.isEmpty())
          return  // WRONG!
      
      if (string.isEmpty()) {
          return  // Okay
      }
      
    • 3、当整个表达式适合放在一行时,表达式if/else条件语句可以省略大括号

      
      val value = if (string.isEmpty()) 0 else 1  // Okay
      
      
      val value = if (string.isEmpty()) { // Okay
          0
      } else {
          1
      }
      val value = if (string.isEmpty())  // WRONG!
          0
      else
          1
      

    函数

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

    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

    相关文章

      网友评论

          本文标题:Kotlin 样式

          本文链接:https://www.haomeiwen.com/subject/zeigiktx.html