Traduzca Swift para Kotlin

Estoy tratando de portar un código Swift existente a Kotlin y me gustaría utilizar las mejores prácticas para el siguiente código Swift:

struct Deck { private(set) var cards: [Card] var cardsCount: Int { return self.cards.count } init(cards: [Card] = []) { self.cards = cards } mutating func add(card: Card) { self.cards.append(card) } } 

Los objectives de layout son:

  1. cards propiedad de las cards no es modificable fuera de la class, por lo que su tipo debe ser List<Card>

  2. fun add(card: Card) debería modificar la list de cards internas

¿Hay alguna manera de lograr esto en Kotlin sin utilizar dos properties separadas, una private var mutableCards: MutableList<Card> y una propiedad calculada val cards: List<Card> get() = this.mutableCards

Necesito algunas mejores prácticas para la situación anterior.

    En base a nuestros comentarios, hasta donde yo sé, esta es una posible solución:

     class Card { } class Deck(cards:List<Card>){ var cards:List<Card> init { this.cards = cards } public fun add(card:Card) { (cards as MutableList<Card>).add(card) } } fun main(args: Array<String>) { var cards:List<Card> = arrayListOf() // here I can't modify cards var deck = Deck(cards) deck.add(Card()) print(deck.cards.count()) // printing 1 } 

    es posible que desee copyr pegar y ejecutarlo aquí: https://try.kotlinlang.org/#/Kotlin%20in%20Action/Chapter%201/1.1/1.1_ATasteOfKotlin.kt