返回和内联

Kev*_*ick 3 java kotlin

我试图找到与此Java返回相当的Kotlin:

return new int[] {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

我试过只是声明然后像这样返回:

val returnArr: IntArray = intArrayOf(1, 2, 3)
return returnArr
Run Code Online (Sandbox Code Playgroud)

但是我收到一条警告,上面写着"变量仅用于跟随返回并且可以内联".内联究竟是什么意思?有没有办法在一条线上完成所有这些?

Han*_*k D 8

在警告的上下文中,"内联"意味着删除实际上不需要存在的局部变量,参数,函数等,并且没有它们的代码将更简单.例如,在声明中

val returnArr: IntArray = intArrayOf(1, 2, 3)
return returnArr
Run Code Online (Sandbox Code Playgroud)

returnArr 没有用处(调试时除外),你可以用它替换它

return intArrayOf(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

我认为,使用术语"内联"来指代这种简化是一种JetBrains约定,因为存在"内联"重构,可以自动简化,就像我们正在讨论的那样(右键单击returnArr并选择重构/内联).

警告不是编译器警告; 这是IntelliJ所做的众多风格检查之一.如果您喜欢临时变量,我认为您可以通过转到Preferences/Editor/Inspections/Kotlin/Redundant Constructs并取消选中"Unacessary local variable"来禁用它.

  • 这里使用"内联"是完全标准的:间接引用被事物本身替换的事物.最常谈的内联类型是函数调用,但这与局部变量等效. (2认同)