在下面的示例中,扩展功能具有未声明的参数类型。 String
。咦?这是一个未申报的类型?
import UIKit
enum ColumnType: String {
case StringArray
, IntArray
, DoubleArray
, String = "text"
, Int = "int"
, Double = "double"
, Unknown
}
extension ColumnType {
func fromRaw(rawValue: String) -> ColumnType {
if let valueType = ColumnType(rawValue: rawValue) {
return valueType
}
switch rawValue {
case "text", "Text":
return .String
case "int", "Int":
return .Int
case "double", "Double":
return .Double
default:
return .Unknown
}
}
}
答案 0 :(得分:4)
在ColumnType
内(您是,因为这是一个扩展程序,String
是ColumnType.String
,而不是Swift.String
。我强烈建议您不要重新定义stdlib类型像这样,但如果必须,你可以使用Swift
包来引用Swift类型:
func fromRaw(rawValue: Swift.String) -> ColumnType {