2015-02-24 3 views

ответ

2

Нет разницы. Форма (String) на самом деле означает кортеж с одним значением String тип, но это эквивалентно только тому, что говорят a String.

Например, рассмотрим следующий массив:

var array = [String]() 

вы можете добавить строку элемент, как обычно:

array.append("raw string") 

, но вы также можете добавить кортеж, содержащий одно значение строки:

let tuple = (namedValue: "from tuple") 
array.append(tuple) 

Обратите внимание, что эквивалентность здесь не останавливается. Если у вас есть функция/метод приема п параметры:

func aFunc(#param1: Int, #param2: String, #param3: Double) {} 

при вызове его вы можете предоставить список параметров:

aFunc(param1: 1, param2: "text", param3: 3.14) 

но вы также можете сгруппировать параметры в кортеж, и только он к функции

let params = (param1: 1, param2: "text", param3: 3.14) 
aFunc(params) 
+0

Спасибо Антонио, это то, о чем я только думал. Я заметил, что 'var tupleArray_002 = [(Int, String)]()' объявлено '[((Int, String))]' и что 'var tupleArray_002 = [Int, String]()' decl '[(Int, String)], поэтому я начал думать, что смотрю на кортеж. Еще раз спасибо за разъяснение, очень ценим. – fuzzygoat

+0

Любопытно, можете ли вы получить список параметров функции tuple, я попробовал его здесь, и я получаю ошибку, передающую кортеж функции (согласно вашей последней строке) – fuzzygoat

+0

Какая ошибка? Я добавил функцию к моему ответу, возможно, вам не хватает внешних имен в своей сигнатуре. – Antonio

Смежные вопросы