開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta
- Swift (プログラミング言語)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド: 独自の構造を使う)、コードマグネット(p.256)をSwiftで考えてみる。
コードマグネット(p.256)
コード(Xcode)
main.swift
//
// main.swift
// sample256
//
// Created by kamimura on 9/1/14.
// Copyright (c) 2014 kamimura. All rights reserved.
//
import Foundation
enum UnitOfMeasures {
case Count, Pounds, Pints
var units:String {
switch self {
case .Count:
return "個"
case .Pounds:
return "ポンド"
case .Pints:
return "パイント"
}
}
}
struct FruitOrder<T> {
let name:String
let country:String
let amount:T
let units:UnitOfMeasures
func display() {
println("\(self.amount)\(self.units.units)の\(self.name)です。")
}
}
class FruitOrder1<T> {
let name:String
let country:String
let amount:T
let units:UnitOfMeasures
init(name:String, country:String, amount:T, units:UnitOfMeasures) {
self.name = name
self.country = country
self.amount = amount
self.units = units
}
func display() {
println("\(self.amount)\(self.units.units)の\(self.name)です。")
}
}
println("構造体")
let apple:FruitOrder = FruitOrder(name: "リンゴ", country: "イギリス", amount: 144, units: .Count)
let strawberries:FruitOrder = FruitOrder(name: "いちご", country: "スペイン", amount: 17.6, units: .Pounds)
let oj:FruitOrder = FruitOrder(name: "オレンジジュース", country: "アメリカ", amount: 10.5, units: .Pints)
apple.display()
strawberries.display()
oj.display()
println("クラス")
let apple1:FruitOrder1 = FruitOrder1(name: "リンゴ", country: "イギリス", amount: 144, units: .Count)
let strawberries1:FruitOrder1 = FruitOrder1(name: "いちご", country: "スペイン", amount: 17.6, units: .Pounds)
let oj1:FruitOrder1 = FruitOrder1(name: "オレンジジュース", country: "アメリカ", amount: 10.5, units: .Pints)
apple1.display()
strawberries1.display()
oj1.display()
入出力結果(Console Output, Terminal)
構造体 144個のリンゴです。 17.6ポンドのいちごです。 10.5パイントのオレンジジュースです。 クラス 144個のリンゴです。 17.6ポンドのいちごです。 10.5パイントのオレンジジュースです。 Program ended with exit code: 0
0 コメント:
コメントを投稿