ARTS - 12

281 阅读1分钟

A


82. 删除排序链表中的重复元素 II

描述: 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

思路: 使用辅助结点,临时添加1个新头结点,从临时结点开始遍历,删除所有重复结点。

R


Write fluent code in Kotlin

  • 少用注释。

  • 出现异常时使用 Exceptions 而不是返回错误码。

  • 使用 require/check 来验证不应该发生的条件。

  • 使用扩展函数来添加有意义的链式调用。

  • 使用或自建 infix 方法来简化代码。

    val x = mapOf(1 to "a")
    val range = 1 until 10
    val loop = listOf(...) zip listOf(...)
    /////////////// instead of ///////////////
    val x = mapOf(1.to("a"))
    val range = 1.until(10)
    val loop = listOf(...).zip(listOf(...))
    
  • 使用 scope 方法来简化代码。( withapply 等)

  • 声明变量时省略类型信息。

  • 方法只有1个表达式时,使用表达式语法。

  • 使用 typealiasinline 添加有意义且常用的类。

  • 使用精度标记来指定数字的精度。(L,f 等)

  • 使用下划线在视觉上对数字文字分组。

  • 使用字符串模板。

    val x = "customer $id bought ${purchases.count()} items"
    val y = """He said "I'm tired""""
    /////////////// instead of ///////////////
    val x = "customer " + id + " bought " + purchases.count() + " items"
    val y = "He said \"I'm tired\""
    
  • 使用条件表达式以保证变量非空。

  • 正常使用流和序列。

  • 使用密封类来处理状态。

T


addPauseListener

@RequiresApi(19) inline fun Animator.addPauseListener(
    crossinline onResume: (animator: Animator) -> Unit = {}, 
    crossinline onPause: (animator: Animator) -> Unit = {}
): AnimatorPauseListener

S


暂无……