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

Kotlin中无法从列表获取cardValue值的问题求助

问题分析与解决

你的问题出在Cards类的构造函数参数上:只有cardName用了val修饰,成为了类的属性,而cardValue和amountDeck只是普通的构造函数参数,没有被声明为类的成员,所以外部无法通过实例访问它们。

修改方案

给cardValue和amountDeck加上val(如果不需要修改属性值就用val,需要修改则用var),这样它们就会被提升为类的属性,外部可以正常访问:

class Cards(val cardName: String = "", val cardValue: Int = 0, val amountDeck: Int = 4) {}

public var allCards = listOf<Cards>(
    Cards("One", 1),
    Cards("Two", 2),
    Cards("Three", 3),
    Cards("Four", 4),
    Cards("Five", 5),
    Cards("Six", 6),
    Cards("Seven", 7),
    Cards("Eight", 8),
    Cards("Nine", 9),
    Cards("Ten", 10),
    Cards("Eleven", 11),
    Cards("Twelve", 12),
    Cards("Ace", 10),
    Cards("Queen", 10),
    Cards("Jack", 10),
    Cards("King", 10)
)

fun drawCard(randomValue: Int) {
    val currentName: String = allCards[randomValue].cardName
    val currentValue: Int = allCards[randomValue].cardValue
}

补充说明

在Kotlin中,构造函数参数如果没有val/var修饰,仅能在构造函数内部使用,不会成为类的成员属性。只有添加val(只读属性)或var(可变属性)修饰符,参数才会被转化为类的属性,允许外部通过类实例访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:40:54