kotlin - println() 产生不同的输出
问题描述
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
}
我很困惑为什么上面的代码会产生不同的输出
解决方案
println("$_array[3]") // [Ljava.lang.Object;@1b6d3586[3]
打印_array
后跟的对象引用[3]
,您仅对_array
参数使用字符串插值
println("${_array[3]}") // A
打印 的第 4 个元素_array
,您使用字符串插值作为_array[3]
参数
println(_array[3]) // A
_array
打印(同上)的第四个元素
println( _array[3].toString() + " is _array's item") // ERROR
它需要toString()
打印,因为它的元素_array
是类型Any
和 + 符号不确定后
它打印 _array 的第 4 个元素
println( "" + _array[3] + " is _array's item") // A is _array's item
它不需要toString()
,因为它前面有一个空字符串,并且 + 号被编译器解释为字符串连接,因此它打印第 4 个元素_array
推荐阅读
- python - 抓取某些网址时无法使我的脚本停止
- python - Anaconda 无法导入 ssl,但 Python 可以
- php - laravel webview中的Ajax文件上传不起作用
- shadow-dom - 如何在元素检查器面板中隐藏阴影根?
- c# - 如何检查 windows-login-screen 是否使用 ac# windows-service 显示?
- go - 如何在 Go 中获取 DOM HTML
- python - 是否有 Python 库可以根据 Col A 对 Col B 的值进行分组并在一行中显示组的所有值?
- ios - 数组的俱乐部值
- python - Tkinter create_image() 保留 PNG 透明度,但 Button(image) 不
- android - 无法确定标签“的类型”
我正在开发一个涉及 Google Maps 的小型 Android 应用程序(通过选择 Google Maps 活动模板使用 Android Studio 创建)。
它在我的测试手机上运行良好,但是当我构建一个签名的 APK 并将其安装在另一部手机上时,地图是空白的。
经过一些谷歌