[Swift]如何初始化一个 class 需要一个带有 ReadLine 的字符串?

[Swift]How do I initialize a class expecting a String with a ReadLine?

我正在学习 swift 并且我正在尝试通过将用户输入定义的名称字符串传递给 Player 对象来初始化它,但我必须解包它并解包它会抛出错误。这是一项任务,所以我认为我不允许将 Player 中的参数更改为可选的字符串。有没有办法使这项工作?如果有怎么办?

class PlayGame{
private var player:Player

public init(){
   
print("Welcome, please enter your name: ")
    if let str = readLine()
    {
        self.player = Player(name:str)
    }
}

} 目前正在获得 'Return from initiazlizer without initializing all stored properties'

class Player{
private var name:String

public init(name:String)
{
    self.name = name
}

这就是我正在尝试的,但它失败了

这里

public init(){

    print("Welcome, please enter your name: ")
    if let str = readLine()
    {
        self.player = Player(name:str)
    }
}

如果“str”为“nil”则播放器未初始化

我修好了

public init(){
    print("Welcome, please enter your name: ")
    if let str = readLine()
    {
        self.player = Player(name:str)
    } else {
        player = Player(name:"default")
    }
}

我可以使用“零合并运算符”(也称为“默认运算符”)。

class PlayGame {
    private var player: Player

    public init() {
        print("Welcome, please enter your name: ")
        let str = readLine() ?? "unnamed"
        self.player = Player(name: str)
    }
}