2014年8月27日水曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド: 独自の構造を使う)、エクササイズ(p.233)をSwiftで考えてみる。

エクササイズ(p.233)

コード(Xcode)

main.swift

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

import Foundation

println("構造体")
let randy:Diver = Diver(name: "ランディ", kit: Equipment(tank_capacity: 5.5, tank_psi: 3500, suit_material: "ネオプレン"))
println(randy.badge)

println("クラス")
let randy1:Diver1 = Diver1(name: "ランディ", tank_capacity: 5.5, tank_psi: 3500, suit_material: "ネオプレン")
println(randy1.badge)

struct.swift

//
//  struct.swift
//  sample233
//
//  Created by kamimura on 8/27/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

struct Equipment {
    var tank_capacity:Double
    var tank_psi:Int
    let suit_material:String
}

struct Diver {
    let name:String
    let kit:Equipment
    var badge:String { return
        "名前:\(self.name) タンク:\(self.kit.tank_capacity)(\(self.kit.tank_psi)) スーツ:\(self.kit.suit_material)"
    }
}

class.swift

//
//  class.swift
//  sample233
//
//  Created by kamimura on 8/27/14.
//  Copyright (c) 2014 kamimura. All rights reserved.
//

import Foundation

class Equipment1 {
    var tank_capacity:Double
    var tank_psi:Int
    let suit_material:String
    
    init(tank_capacity:Double, tank_psi:Int, suit_material:String) {
        self.tank_capacity = tank_capacity
        self.tank_psi = tank_psi
        self.suit_material = suit_material
    }
}

class Diver1 : Equipment1 {
    let name:String
    
    init(name:String, tank_capacity:Double, tank_psi:Int, suit_material:String) {
        self.name = name
        super.init(tank_capacity: tank_capacity, tank_psi: tank_psi, suit_material: suit_material)
    }
    
    var badge:String { return
        "名前:\(self.name) タンク:\(self.tank_capacity)(\(self.tank_psi)) スーツ:\(self.suit_material)"
    }
}

入出力結果(Console Output, Terminal)

構造体
名前:ランディ タンク:5.5(3500) スーツ:ネオプレン
クラス
名前:ランディ タンク:5.5(3500) スーツ:ネオプレン
Program ended with exit code: 0

0 コメント:

コメントを投稿