Как вызвать функцию внутри класса данных

#kotlin #set

Вопрос:

У меня есть этот класс данных, внутри которого есть функция, и я хочу использовать эту функцию для добавления элемента в набор классов данных, но я не уверен, как его вызвать.

Это и есть код:

 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()
}
 

Итак, я хочу иметь возможность добавлять статьи в свой дом с помощью функции addArticle внутри дома класса данных, но то, как я думал об этом, не работает. Любая помощь была бы очень признательна.

Ответ №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"))
 

Комментарии:

1. Спасибо за ответ, но как я могу это сделать, пока не передавая статьи (так как я могу добавить только ограничение в 20, и если я сначала добавлю их дома, они уже пройдены, и я не могу добавить статью).