2016-01-12 5 views
0

Я новичок в Swift и пытаюсь изучить концепцию псевдонимов типов. Я попытался скомпилировать код ниже:При использовании typealias я получаю ошибку компилятора «использование необъявленного типа»

var x = 23 
typealias y = x // compiler output: use of undeclared type x 
print(y) 

Однако компилятор сказать мне «использование необъявленной типа х».

Я очень смущен, почему это происходит. Я думал, что Swift может косвенно вывести тип переменной. Есть что-то, что мне не хватает? Заранее благодарю за любую помощь!

+1

Вы спрашиваете компилятору назначить х, который является переменной со значением Int (23) в качестве ассоциированного типа у , Это невозможно ... Пожалуйста, проверьте, что x не представляет тип, но значение. – user3441734

+1

Как @ user3441734 сказал: 'x' - это переменная, а не тип. [Введите псевдонимы] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID327) нужен тип для псевдонима , например 'typealias y = Int'. – Cristik

ответ

3

Вы можете использовать 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 
Смежные вопросы