[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)
}
}
我正在学习 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)
}
}