我在尝试使用枚举调用切换案例中调用count()
函数时遇到错误我无法解释:
enum Token{
case Name(String)
var count:Int{
switch self{
case .Name(let string):
return count(string)
}
}
}
错误为Cannot invoke 'count' with an argument list of type '((String))'
。
我也试过
case .Name(let string):
return string.characters.count
错误'String' does not have a member named 'characters'
。
任何人都知道我做错了什么?
答案 0 :(得分:2)
Swift认为您正在尝试访问count
属性,而不是调用全局count
函数。您可以致电Swift.count(string)
:
Swift 1.2:
enum Token{
case Name(String)
var count:Int{
switch self{
case .Name(let string):
return Swift.count(string)
}
}
}
Swift 2:
您尝试的第二种语法实际上对Swift 2来说是正确的:
case .Name(let string):
return string.characters.count