<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)  編輯  收藏 所屬分類: 動態(tài)語言
    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的動態(tài)特性,很容易就達到了,使用的話:

    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}

    主站蜘蛛池模板: 亚洲国产一区二区三区在线观看 | 在线观看av永久免费| 亚洲中久无码永久在线观看同| 国产成人亚洲精品无码AV大片| 最新69国产成人精品免费视频动漫| 99亚偷拍自图区亚洲| 最近免费中文字幕4| 亚洲av成人无码网站…| 国产成人精品高清免费| 免费高清A级毛片在线播放| 久久精品国产亚洲一区二区三区 | 久久这里只精品国产免费10| 亚洲精品国产成人99久久| 亚洲毛片在线免费观看| 亚洲午夜成人精品无码色欲| 日本免费中文字幕在线看| 成年免费大片黄在线观看com| 亚洲精品国产精品国自产观看| 两个人日本免费完整版在线观看1| 亚洲AV日韩精品久久久久| 97视频免费在线| 色噜噜噜噜亚洲第一| 久久青青草原亚洲av无码| 久久久国产精品福利免费| 亚洲国产成人精品电影| 国产成人aaa在线视频免费观看 | 日本特黄特色AAA大片免费| 国产亚洲福利精品一区| 2019中文字幕在线电影免费| 亚洲国产精品成人AV在线 | 国内精品99亚洲免费高清| 中文字幕在线观看亚洲| 日本免费网站在线观看| 中文字幕免费播放| tom影院亚洲国产一区二区| 国产精品V亚洲精品V日韩精品| 99久久久国产精品免费牛牛四川| 亚洲狠狠色丁香婷婷综合| 久久久无码精品亚洲日韩蜜桃| 色窝窝免费一区二区三区| 久久久WWW成人免费精品|