报告可以具有 inout 差异的类型形参。

使用 inout 差异可以在 Kotlin 中提供更精确的类型推断以及更清晰的代码语义。

示例:


  class Box<T>(val obj: T)

  fun consumeString(box: Box<String>) {}
  fun consumeCharSequence(box: Box<CharSequence>) {}

  fun usage(box: Box<String>) {
      consumeString(box)
      consumeCharSequence(box) // 编译时错误
  }

该快速修复会添加匹配的差异修饰符:


  class Box<out T>(val obj: T)

  fun consumeString(box: Box<String>) {}
  fun consumeCharSequence(box: Box<CharSequence>) {}

  fun usage(box: Box<String>) ++{
      consumeString(box)
      consumeCharSequence(box) // 可以
  }