開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta 6
- Swift (プログラミング言語)
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 コメント:
コメントを投稿