Swift 使用typealias时,我得到编译器错误“quot;“未声明类型的使用”;
我是Swift新手,正在尝试学习类型别名的概念。我尝试编译以下代码:Swift 使用typealias时,我得到编译器错误“quot;“未声明类型的使用”;,swift,type-alias,Swift,Type Alias,我是Swift新手,正在尝试学习类型别名的概念。我尝试编译以下代码: var x = 23 typealias y = x // compiler output: use of undeclared type x print(y) 但是,编译器告诉我“使用未声明的x类型” 我很困惑为什么会发生这种事。我认为Swift可以隐式地推断变量类型。有什么我遗漏的吗?您可以使用typealias使您更容易声明更复杂的类型,例如: typealias RGBA = (red: CGFloat, green
var x = 23
typealias y = x // compiler output: use of undeclared type x
print(y)
但是,编译器告诉我“使用未声明的x类型”
我很困惑为什么会发生这种事。我认为Swift可以隐式地推断变量类型。有什么我遗漏的吗?您可以使用typealias使您更容易声明更复杂的类型,例如:
typealias RGBA = (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat)
let redColor: RGBA = (1.0, 0.0, 0.0, 1.0)
redColor.red // 1
redColor.green // 0
redColor.blue // 0
redColor.alpha // 1
typealias CMYK = (cyan: CGFloat, magenta: CGFloat, yellow: CGFloat, black: CGFloat)
let cyanColor: CMYK = (1.0, 0.0, 0.0, 0.0)
cyanColor.cyan // 1
cyanColor.magenta // 0
cyanColor.yellow // 0
cyanColor.black // 0
您要求编译器分配x,这是一个值为Int(23)的变量,作为关联类型y。那是不可能的。。。请检查,x不是表示类型,而是表示值。正如@user3441734所说,
x
是一个变量,而不是类型。需要一个别名类型,例如typealias y=Int
。