【发布时间】:2017-06-01 19:56:20
【问题描述】:
我想测试输入字符串是否为“”。如果输入字符串是“”,则返回false。
var x = ""
func beginsWithVowel(x: String) -> Bool {
if x.characters[x.startIndex] == "a" || x.characters[x.startIndex] == "A"{
return true
}else if x.characters[x.startIndex] == "e" || x.characters[x.startIndex] == "E"{
return true
}else if x.characters[x.startIndex] == "i" || x.characters[x.startIndex] == "I"{
return true
}else if x.characters[x.startIndex] == "o" || x.characters[x.startIndex] == "O"{
return true
}else if x.characters[x.startIndex] == "u" || x.characters[x.startIndex] == "U"{
return true
}else {
return false
}
}
beginsWithVowel(x: x)
但我收到一个错误:致命错误:无法从空字符串中形成字符。 我该如何解决?谢谢你。 附言不能使用可选字符串,问题不是如何检查空字符串,而是为什么它不能在函数中返回布尔值。
【问题讨论】:
-
我会先检查 x 是否为空(在检查它是否为 A、E 等之前),因此不会对空字符串应用任何方法('.characters' 似乎将 x 转换为字符,所以它可能会在那里抛出异常)。
标签: swift