開発環境
- OS X Mavericks - Apple(OS)
- Xcode 6.0 Beta
- Swift (プログラミング言語)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド: 独自の構造を使う)、ピラニアパズル(p.223)をSwiftで考えてみる。
ピラニアパズル(p.223)
コード(Xcode)
main.swift
//
// main.swift
// sample223
//
// Created by kamimura on 8/25/14.
// Copyright (c) 2014 kamimura. All rights reserved.
//
import Foundation
println("構造体1.")
struct Fish {
let name:String;
let species:String;
var teeth:Int;
var age:Int
}
func catalog(fish:Fish) {
println("\(fish.name)は\(fish.species)であり、歯は\(fish.teeth)本あります。年齢は\(fish.age)才です。")
}
var snappy:Fish = Fish(name: "スナッピー", species: "ピラニア", teeth: 69, age: 4)
catalog(snappy)
println("クラス.")
// The Swift Programming Languageによると、クラスには構造体には無い機能があるみたい(例えば継承できるとか)
class Fish1 {
let name:String
let species:String
var teeth:Int
var age:Int
init(name:String, species:String, teeth:Int, age:Int) {
self.name = name
self.species = species
self.teeth = teeth
self.age = age
}
var catalog:String { return "\(self.name)は\(self.species)であり、歯は\(self.teeth)本あります。年齢は\(self.age)才です。" }
}
var snappy1:Fish1 = Fish1(name: "スナッピー", species: "ピラニア", teeth: 69, age: 4)
println(snappy1.catalog)
// 最初の構造体で、catalogもselfを使って構造自身に含めた場合
println("構造体2.")
struct Fish2 {
let name:String;
let species:String;
var teeth:Int;
var age:Int
var catalog:String { return "\(self.name)は\(self.species)であり、歯は\(self.teeth)本あります。年齢は\(self.age)才です。" }
}
var snappy2:Fish2 = Fish2(name: "スナッピー", species: "ピラニア", teeth: 69, age: 4)
println(snappy2.catalog)
入出力結果(Console Output, Terminal)
構造体1. スナッピーはピラニアであり、歯は69本あります。年齢は4才です。 クラス スナッピーはピラニアであり、歯は69本あります。年齢は4才です。 構造体2. スナッピーはピラニアであり、歯は69本あります。年齢は4才です。 Program ended with exit code: 0
0 コメント:
コメントを投稿