Swift 使用typealias时,我得到编译器错误“quot;“未声明类型的使用”;

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

我是Swift新手,正在尝试学习类型别名的概念。我尝试编译以下代码:

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