Ang*_*a S 3 string-interpolation kotlin
fun main(args: Array<String>) {
var _array = arrayOf(1 , 2 , 3.14 , 'A', "item" , "a b c d", 4)
println("$_array[3]") // [Ljava.lang.Object;@1b6d3586[3]
println("${_array[3]}") // A
println(_array[3]) // A
println( _array[3] + " is _array's item") // ERROR
println( "" + _array[3] + " is _array's item") // A is _array's item
}
Run Code Online (Sandbox Code Playgroud)
我很困惑为什么上面的代码产生不同的输出
小智 5
println("$_array[3]") // [Ljava.lang.Object;@1b6d3586[3]
Run Code Online (Sandbox Code Playgroud)
打印_array对象引用后跟[3],仅对_array参数使用字符串插值
println("${_array[3]}") // A
Run Code Online (Sandbox Code Playgroud)
打印第4个元素_array,你使用字符串插值作为_array[3]参数
println(_array[3]) // A
Run Code Online (Sandbox Code Playgroud)
打印第4个元素_array(与上面相同)
println( _array[3].toString() + " is _array's item") // ERROR
Run Code Online (Sandbox Code Playgroud)
它需要toString()打印,因为_array类型的元素Any 和+符号之后是不确定的
它打印_array的第4个元素
println( "" + _array[3] + " is _array's item") // A is _array's item
Run Code Online (Sandbox Code Playgroud)
它不需要,toString()因为它前面是一个空字符串,+符号被编译器解释为字符串连接,所以它打印出第4个元素_array
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |