2014年9月3日水曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の6章(データ構造と動的メモリ: 架け橋を築く)、コードマグネット(p.273)をSwiftで考えてみる。

コードマグネット(p.273)

コード(Xcode)

main.swift

//
//  main.swift
//  sample273
//
//  Created by kamimura on 9/3/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

// 構造体は再帰的に定義できないみたい。以下はエラーになった
//struct Island {
//    let name:String
//    let opens:String
//    let closes:String
//    var next:Island? = nil
//}

class Island {
    let name:String
    let opens:String
    let closes:String
    var next:Island?
    
    init(name:String, opens:String, closes:String, island:Island? = nil) {
        self.name = name
        self.opens = opens
        self.closes = closes
        self.next = island
    }
    
    func display() {
        println("名前:\(self.name) 営業時間:\(self.opens)-\(self.closes)")
        self.next?.display()
    }
}

var amity:Island = Island(name: "アミティ", opens: "9:00", closes: "17:00")
var craggy:Island = Island(name: "クラッギー", opens: "9:00", closes: "17:00")
var isla_nublar:Island = Island(name: "イスラヌブラル", opens: "9:00", closes: "17:00")
var shutter:Island = Island(name: "シャッター", opens: "9:00", closes: "17:00")
var skull:Island = Island(name: "スカル", opens: "9:00", closes: "17:00")

amity.next = craggy
craggy.next = isla_nublar
isla_nublar.next = shutter
shutter.next = skull

amity.display()

入出力結果(Console Output, Terminal)

名前:アミティ 営業時間:9:00-17:00
名前:クラッギー 営業時間:9:00-17:00
名前:イスラヌブラル 営業時間:9:00-17:00
名前:シャッター 営業時間:9:00-17:00
名前:スカル 営業時間:9:00-17:00
Program ended with exit code: 0

0 コメント:

コメントを投稿