文字列ストリーム風
以下でStream(Array(src.characters))としてやれば文字列stream風になる。
class Stream<T> { let m_value:[T] var count = 0 init(_ v:[T]) { m_value = v } func get()->T? { if count < m_value.count { let ret = m_value[count] count = count + 1 print("\(ret)") return ret } else { return nil } } func unget() { count = count - 1 print("unget") if count < 0 { count = count + 1 } } }