【问题标题】:How to call a function inside a data class如何在数据类中调用函数
【发布时间】:2021-07-31 23:13:58
【问题描述】:

我有一个内部有函数的数据类,我想使用该函数将元素添加到数据类的集合中,但我不知道如何调用它。

这是代码:

data class House(val article: MutableSet<Article>){

   //only add articles if there are less than 10
   fun addArticle(article: Article): Boolean{

       if(articles.size <= 10){
           articles.add(article)
           return true
       } else {
           return false
       }
   }
}

data class Article(val type: String,
                  var color: String)

val article1 = Article("bed", "black")
val article2 = Article("sheets", "white")

val articlesToAdd = House(mutableSetOf(article1, article2))
   
//add articles to house: THIS DOESN'T WORK

articlesToAdd.forEach{
   it.house.addVehicle()
}

所以,我希望能够通过使用数据类 House 中的 addArticle 函数将文章添加到我的房子,但我想这样做的方式不起作用。任何帮助将不胜感激。

【问题讨论】:

    标签: kotlin set


    【解决方案1】:

    articlesToAdd 的类型为 House,因此它没有方法 forEach。这是一个示例,它增加了一个 Article

    val article1 = Article("bed", "black")
    val article2 = Article("sheets", "white")
    
    val articles = mutableSetOf(article1, article2)
    
    val house = House(articles)
    
    house.addArticle( Article("bed", "red"))
    

    【讨论】:

    • 感谢您的回答,但是我怎么能在不通过文章的情况下做到这一点(因为我只能添加 20 个限制,如果我先在内部添加它们,它们已经通过了,我无法添加文章)。
    • 首先,您的限制是 10(它在您的代码中)而不是 20。其次,Yayotron 为您提供了正确的答案,但现在您说您不想把物品传到家里了吗?你的回答很混乱。
    • 您当然可以通过使用新的可变文章集调用 house.addArticle() 来添加更多文章,而不会影响“文章”对象中已有的内容。试试看
    猜你喜欢
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多