Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

文字列ストリーム風

以下で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
            }
        }
    }