<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    為BitStruct添加list類型

    Posted on 2008-01-27 15:53 dennis 閱讀(363) 評論(0)  編輯  收藏 所屬分類: 動態語言
    class BitStruct
      
    def self.list(name,element)
        module_eval 
    <<-HERE
          rest :body
          
    def #{name.to_s}=(elist)
             e=Object.const_get(:#{element})
             if elist.respond_to? :each and elist.respond_to? :[] and elist[0].is_a? e
                elist.each{ 
    |value| self.body+=value}
             elsif elist.is_a? e
                self.body
    =elist
             
    else
                
    raise ArgumentError,elist.to_s<<" is not a #{element}",caller
             end
          end
          
    def #{name.to_s}
             result=[]
             e
    =Object.const_get(:#{element})
             size=e.new.size
             num
    =self.body.size/size-1
             
    for i in 0..num
                result[i]
    =e.new(self.body[i*size,size])
             end
             result
          end
        HERE
      end
    end
    利用Ruby的動態特性,很容易就達到了,使用的話:

    class A <BitStruct
       unsigned :id,
    32
    end
    class B<BitStruct
       list :aList,A
    end
    alist
    =[]
    for i in 0..10
      a
    =A.new
      a.id
    =i
      alist.unshift a
    end
    b
    =B.new
    b.aList
    =alist
    b.aList.each{
    |e| puts e.id}

    主站蜘蛛池模板: www亚洲一级视频com| 国产成人啪精品视频免费网| 亚洲AV无码久久寂寞少妇| 特黄特色大片免费| 国产中文字幕免费| 一级免费黄色大片| 亚洲人成人一区二区三区| 免费观看一区二区三区| 亚洲av片劲爆在线观看| 你懂的免费在线观看网站| 亚洲婷婷五月综合狠狠爱| 免费无码又爽又刺激高潮软件| 久久国产亚洲电影天堂| 一区二区三区四区免费视频| 亚洲国产精品xo在线观看| 成年女人免费碰碰视频| 精品国产亚洲AV麻豆| 伊人久久精品亚洲午夜| 95老司机免费福利| 亚洲人成网站看在线播放| 国产免费69成人精品视频| 97在线免费视频| 亚洲国产情侣一区二区三区| 日韩人妻无码免费视频一区二区三区 | 日韩电影免费在线观看视频| 国产综合激情在线亚洲第一页| 亚洲人成国产精品无码| 精品一卡2卡三卡4卡免费视频| 亚洲欧洲日产国码www| 韩国欧洲一级毛片免费| 国产啪精品视频网站免费尤物| 亚洲天堂一区在线| 国产禁女女网站免费看| 中国videos性高清免费| 亚洲国产成人91精品| 亚洲JIZZJIZZ中国少妇中文| 99精品视频免费在线观看| 久久亚洲中文字幕无码| 亚洲大片在线观看| 成在线人永久免费视频播放| 可以免费观看的毛片|