2014年9月10日水曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の7章(高度な関数: 関数を最大限に活用する)、自分で考えてみよう(p.339)をSwiftで考えてみる。

自分で考えてみよう(p.339)

コード(Xcode)

main.swift

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

import Foundation

enum ResponseType {
    case Dump, SecondChance, Marriage
}

struct Response {
    let name:String
    let response_type:ResponseType
}

func dump(r:Response) {
    println("\(r.name)さんへ")
    println("残念ながら、前回のデートの結果、")
    println("再度お会いすることはないとの連絡を受けました。")
}

func secondChance(r:Response) {
    println("\(r.name)さんへ")
    println("よいお知らせです。前回のデートの結果、")
    println("もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。")
}

func marriage(r:Response) {
    println("\(r.name)さんへ")
    println("おめでとうございます!前回のデートの結果、")
    println("結婚を申し込みたいとの連絡を受けました。")
}

let replies:[(Response) -> ()] = [dump, secondChance, marriage]

let r:[Response] = [
    Response(name: "マイク", response_type: .Dump),
    Response(name: "ルイス", response_type: .SecondChance),
    Response(name: "マット", response_type: .SecondChance),
    Response(name: "ウィリアム", response_type: .Marriage)
]

for res:Response in r {
    replies[res.response_type.hashValue](res)
}

入出力結果(Console Output, Terminal)

マイクさんへ
残念ながら、前回のデートの結果、
再度お会いすることはないとの連絡を受けました。
ルイスさんへ
よいお知らせです。前回のデートの結果、
もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。
マットさんへ
よいお知らせです。前回のデートの結果、
もう一度お会いしたいとの連絡を受けました。至急ご連絡ください。
ウィリアムさんへ
おめでとうございます!前回のデートの結果、
結婚を申し込みたいとの連絡を受けました。
Program ended with exit code: 0

0 コメント:

コメントを投稿