Micole_11 2022-01-11 17:04 采纳率: 0%
浏览 21

第三版 第一行代码:Android 疑问

该书第二章2.6小节 Lambda编程中介绍Kotlin语言的list用法,示例代码如下:

val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
list.add("Watermelon")
for (fruit in list) {
println(fruit)
}

此处产生一个小疑问,val表示list这个这个变量不可变,为什么还能执行list.add()这个语句,并且AS也不报错?
希望郭神百忙之中能答疑解惑

  • 写回答

3条回答 默认 最新

  • 虾米~ 2022-01-11 17:54
    关注

    val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
    不能执行 list = mutableListOf("change") 但能对list进行增删改
    val代表list这个变量不能指向另一个变量,即物理地址不能发生改变了
    但是list.add()并不影响它的物理地址,只是对这个数组进行追加数据而已

    评论

报告相同问题?

问题事件

  • 创建了问题 1月11日

悬赏问题

  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 写51单片机程序代码,代码好难,需要外部中断还有电子时钟的,还有按键修改电子时钟,请大家积极讨论
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?