2014年9月27日土曜日

開発環境

Head First JavaScript Programming (Eric T. Freeman (著)、 Elisabeth Robson (著)、 O'Reilly Media )のChapter 12(Creating object: Advanced Object Construction)、EXERCISE(p.544)をSwiftで考えてみる。

EXERCISE(p.544)

コード(Xcode)

main.swift

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

import Foundation

class Dog {
    let name:String
    let breed:String
    let weight:Int
    init(name:String, breed:String, weight:Int) {
        self.name = name
        self.breed = breed
        self.weight = weight
    }
    func bark() {
        if self.weight > 25 {
            println("\(self.name) says Woof!")
        } else {
            println("\(self.name) says Yip!")
        }
    }
}

class Cat {
    let name:String
    let breed:String
    let weight:Int
    init(name:String, breed:String, weight:Int) {
        self.name = name
        self.breed = breed
        self.weight = weight
    }
}

func dogCatcher(obj:AnyObject) -> Bool {
    if obj is Dog {
        return true
    }
    return false
}

let meow = Cat(name: "Meow", breed: "Siamese", weight: 10)
let whiskers = Cat(name: "Whiskers", breed: "Mixed", weight: 12)
let fido = ["name":"Fido", "breed":"Mixed", "weight":30]
let fluffy = Dog(name: "Fluffy", breed: "Poodle", weight: 30)
let spot = Dog(name: "Spot", breed: "Chihuahua", weight: 10)
let dogs = [meow, whiskers, fido, fluffy, spot]

for dog in dogs {
    if dogCatcher(dog) {
        println("\((dog as Dog).name) is a dog")
    }
}

入出力結果(Console Output)

Fluffy is a dog
Spot is a dog
Program ended with exit code: 0

0 コメント:

コメントを投稿