2016-10-12 6 views
0

私はStanfordを見ていました - Swiftと一緒にiOS 9アプリケーションを開発しました - 3.もっとSwiftとFoundation Framework for youtubeはタプルとリストについて話していましたが、私がオンラインで検索してもまだわかりません彼らです。タプルとリストとは何ですか?

+5

上の変数の束を置くためだけの方法として、タプルのリストの

思う:// developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/index.html)書籍。それはこのすべてをカバーしています。 – rmaddy

答えて

2

Turpleが塩基性である:

以下の例では、文字列値を格納するshoppingListと呼ばれる配列を作成します変数のグループであり、リストは同じタイプのいくつかの値のインデックスです。

タプル

タプルは(と思う)本当にクールです。それは基本的に変数の束をまとめて、それらに名前を付けることも、何も付かないこともできます。

たとえば、2次式があるとします。これらの値をグループ化すると意味があります:

var quadraticFunction: (a: Int, b: Int, c: Int, plus: Double, minus: Double) 

これで、タプルを返すことさえできます。これをさらに進めるには、1の数をとり、bに1を、cに2を加えて、2次式を実行する関数を作成するとよいでしょう。

func performQuadraticFormula(startValue: Int) -> (a: Int, b: Int, c: Int, plus: Double, minus: Double) { 
    var returnQuadratic: (a: Int, b: Int, c: Int, plus: Double, minus: Double) 

    returnQuadratic.a = startValue 
    returnQuadratic.b = startValue + 1 
    returnQuadratic.c = startValue + 2 
    returnQuadratic.plus = /* lots of math for this part */ 
    returnQuadratic.minus = /* lots of math for this part */ 

    return returnQuadratic 
} 

だから今あなたは、この出力を取り、実際に後で使用するためにそれを保存することができます:

let function = performQuadraticFormula(startValue: 10) 
print(function.a) 
// you can do whatever you want with this output now 

あなたは、これらの値に名前を割り当て、後でのためにそれらを保存し、それらを割り当て、Aでそれらを返すことができます関数。また、あなたはそれがこのようになり、その場合には、各値の名前を持っている必要はありません。

function.0 

リスト

私は私はあなたが簡単で混乱することができますどのように見ることができますねリストとタプル。どちらもそのインデックスで参照できます(tuple.0、list [0])。しかし、リストはかなり異なっています。まず、各値に名前を割り当てることはできません。実際の大きな違いは、タプルはその値であらかじめ定義されていますが、リストは項目を簡単に展開したり削除したりできることです。

たとえば、あなたは、

var tests = [100, 100, 90, 78, 100, 10] 

次にリスト内の次の週に行くをいくつかのテストの成績を保存し、新しいものを追加し、それが自動的に拡張されますすることができます

tests.append(99.8) 

タプルmigghtを3つの値しか持っていません。新しい値を追加するには、戻って新しい変数を追加する必要があります。リストには同じ種類の束があり、必要なものを追加できます。 1を取得するには、あなたがこれを行うことができます:

let firstTest = tests[0] 

また、リスト(配列)は、.MAPのようにそれに付属している多くの機能を持っている()、フィルタ()などのタプルはそれを持っていません。統計やデータのグループとあなたがAppleの[スウィフトプログラミング言語](httpsで始めるべきである1行

2

タプルは、1つの値として表されるゼロ以上の値のグループです。

たとえば、("John", "Smith")は、人の姓名を保持します。 (。)あなたは、値のインデックスに続くドット表記用い内の値にアクセスすることができる:

var person = ("John", "Smith") 

var firstName = person.0 // John 
var lastName = person.1 // Smith 

に囲まれ、コンマで区切られ、値のリストとして記述されリテラルアレイ角括弧の対は:

var shoppingList: [String] = ["Eggs", "Milk"] 
// shoppingList has been initialized with two initial items 
var firstItem = shoppingList[0] 
// firstItem is equal to "Eggs" 
+0

それ以外のものは(書き込みを含まない)他にあります。それが唯一の違いならば、それらのうちの1つを作成する必要があるからです。 – Dordor

+1

上記の違い自体は大きな違いです。 Lets say、 散歩に行った場合、(x、y)タプルの任意の瞬間にあなたの座標を記録することができます。 あなたの旅を記録したい場合は、あなたの場所を数秒ごとにリストに追加することができます。 しかし、それ以外の方法ではできませんでした。 –

関連する問題