開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta
- Swift (プログラミング言語)
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) 10.をSwiftで考えてみる。
8.9(Exercises) 10.
コード(Xcode)
main.swift
//
// main.swift
// sample10
//
// Created by kamimura on 8/30/14.
// Copyright (c) 2014 kamimura. All rights reserved.
//
import Foundation
let units = [["km", "miles", "league"], ["kg", "pound", "stone"]]
println("a.")
println(units[0])
println("b.")
println(units[1])
println(units.indexAt(-1))
println("c.")
println(units[0][0])
println("d.")
println(units[1][0])
println(units.indexAt(-1)[0])
println("e.")
println(units[0].slice(start: 1))
println("f.")
println(units[1].slice(end: 2))
println(units.indexAt(-1).slice(end: 2))
println(units[1].slice(end: -1))
println(units.indexAt(-1).slice(end: -1))
array.swift
//
// array.swift
// array
//
// Created by kamimura on 8/21/14.
// Copyright (c) 2014 kamimura. All rights reserved.
//
import Foundation
extension Array {
func indexAt(i:Int) -> T {
if i >= 0 {
return self[i]
}
let new_index:Int = self.count + i
return self[new_index]
}
func slice(start:Int = 0, end:Int? = nil) -> Array {
var new_start = start >= 0 ? start : self.count + start
var new_end:Int
if end == nil {
new_end = self.count
} else if end! >= 0 {
new_end = end!
} else {
new_end = self.count + end!
}
var result:Array = []
if new_start >= new_end {
return []
}
for i in new_start..<new_end {
result.append(self[i])
}
return result
}
}
入出力結果(Console Output)
a. [km, miles, league] b. [kg, pound, stone] [kg, pound, stone] c. km d. kg kg e. [miles, league] f. [kg, pound] [kg, pound] [kg, pound] [kg, pound] Program ended with exit code: 0
0 コメント:
コメントを投稿