2014年8月29日金曜日

開発環境

Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 8(Storing Collections of Data Using Array)、8.9(Exercises) 9.をSwiftで考えてみる。

8.9(Exercises) 9.

コード(Xcode)

main.swift

//
//  main.swift
//  sample9
//
//  Created by kamimura on 8/29/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

var values:[AnyObject] = [0, 1, 2]

println(values)

values[1] = values

println(values)

println("values[1]")
println(values[1])

// 次はエラー
//for x in values[1] {
//    println(x)
//}

println("values[1][0], values[1][1], values[1][2]")
println(values[1][0])
println(values[1][1])
println(values[1][2])
println("values[0].0")
println(values[0].0)
// 次はエラー
// println(values[0].1)

// 次もエラー
// println(vvalues[0] == (0, 1, 2))

println("tuple")
var a = (1, "a", 2, "b")
println(a.0)
println(a.1)
println(a.2)
println(a.3)

入出力結果(Console Output)

[0, 1, 2]
[0, (
    0,
    1,
    2
), 2]
values[1]
(
    0,
    1,
    2
)
values[1][0], values[1][1], values[1][2]
0
1
2
values[0].0
0
tuple
1
a
2
b
Program ended with exit code: 0

出力結果から考えると、循環は起こらず、変数は配列への参照ではないみたい。

values[1] = values
values[1] = [1, 2, 3]
ってコピーして代入してるってことかなぁ。代入後、values[1]が配列[0, 1, 2]ではなく、(0, 1, 2)になるのがまだよくわかってなかったり。丸括弧だし、tupleになってるってことかと思ったけど、いろいろ試したら違うみたいだった。

0 コメント:

コメントを投稿