You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin类中重赋值val属性为何报Expecting member declaration错误

Kotlin Expecting member declaration 错误原因解析

你遇到的报错是由两个语法规则问题共同导致的:

  • Kotlin 类的主体只能放置成员声明(属性、方法、内部类、初始化块等结构),不能直接写独立的执行语句。你在random类中直接编写的num = 7属于赋值执行语句,不属于合法的类成员声明,编译器在该位置预期读取成员声明代码,因此抛出Expecting member declaration错误。
  • 你用val关键字声明的num是只读属性,本身就不支持二次赋值,即便你把赋值语句放到合法的执行区域,也会触发只读属性不可修改的报错。

如果需要在类初始化阶段修改属性值,可将赋值逻辑放到init初始化块中,同时将val改为支持可变的var,示例代码如下:

fun main(){
    val pizza = random()
    print(pizza.num)
}

class random{
    var num = 5
    init {
        num = 7
    }
}

内容的提问来源于stack exchange,提问作者DDD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:06:02