2016-12-17 2 views
1

Я хочу, чтобы достичь чего-то вродеКак инициализировать несколько переменных некоторого типа в одной строке

var a, b, c: MyType = MyType() 

, но эта строка не компилируется, поскольку компилятор обрабатывает тип аннотаций MyType только для переменной c таким образом a и b отсутствуют аннотации типа или начальное значение для вывода типа.

Оба являются легальными следующее:

// legal but verbose 
var a = MyType() 
var b = MyType() 
var c = MyType() 

// legal but verbose to initialize 
var a, b, c: MyType 
a = MyType() 
b = MyType() 
c = MyType() 

Эти два стиля я могу думать являются законными, но как-то многословным, особенно если существуют десятки переменных одного типа.

Есть ли какой-либо элегантный способ достичь этого?

+1

IMO, объявляющая несколько переменных в одной строке, выглядит непривлекательной. – Sweeper

+0

Если у вас есть значение по умолчанию, ближайшим является использование кортежа synatx. –

ответ

1

Вы можете объявить несколько констант или несколько переменных на одной линии, разделенные запятыми:

var a = "", b = "", c = "" 

ПРИМЕЧАНИЕ

Если сохраненное значение в коде, не собирается менять , всегда объявляйте как константу с ключевым словом let. Используйте переменные только для хранения значений , которые необходимо изменить.

Документация HERE.

В вашем случае:

var a = MyType(), b = MyType(), c = MyType() 
2

Два варианта в Swift: запятые или кортежи.

С запятыми отделяются операторы:

var a = MyType(), b = MyType(), c = MyType() 

С кортежем высказыванием:

var (a, b, c) = (MyType(), MyType(), MyType()) 

Кроме того, но не рекомендуется, вы можете сделать несколько операторов на одной строке с помощью точки с запятой:

var a = MyType(); var b = MyType(); var c = MyType() 
Смежные вопросы