XCPCaptureValueを無駄に併用した。
iの値をそれぞれfizzとbuzz定数でキャプチャしてみると面白い。
キャプチャで生成されたグラフ
普通のFizzBuzz
TestPlayground.playground
import UIKit
import XCPlayground
let fizz = "Fizz"
let buzz = "Buzz"
let fizzbuzz = fizz + buzz
let others = "Others"
for i in 1...100 {
if i % 3 == 0 && i % 5 == 0 {
println(fizzbuzz)
XCPCaptureValue(fizzbuzz, i)
}
else if i % 3 == 0 {
println(fizz)
XCPCaptureValue(fizz, i)
}
else if i % 5 == 0 {
println(buzz)
XCPCaptureValue(buzz, i)
}
else {
println(i)
XCPCaptureValue(others, i)
}
}
タプルに修正したFizzBuzz
FizzBuzzPlayground.playground
enum FizzBuzzResult {
case FIZZ
case BUZZ
case FIZZBUZZ
case OTHERS(Int)
func toString() -> String {
switch self {
case .FIZZ: return "Fizz"
case .BUZZ: return "Buzz"
case .FIZZBUZZ: return "FizzBuzz"
case .OTHERS(let i): return String(i)
}
}
}
func fizzbuzz(i: Int) -> FizzBuzzResult {
switch (i % 3, i % 5) {
case (0, 0):
return .FIZZBUZZ
case (0, _):
return .FIZZ
case (_, 0):
return .BUZZ
case _:
return .OTHERS(i)
}
}
for i in 1...100 {
var retString = fizzbuzz(i).toString()
println(retString)
XCPCaptureValue("capture_i", i)
}