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

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

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

    莊周夢蝶

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

    Ruby Tip:定義索引操作符

    Posted on 2010-02-01 16:29 dennis 閱讀(1059) 評論(2)  編輯  收藏 所屬分類: 動態語言
        怎么讓你對象跟Array或者Hash一樣,可以使用[ ]操作符來獲取屬性值或者賦值? 問題其實就是如何定義index操作符,在Ruby中可以這樣做:

    class Message
       def initialize
        @props
    =Hash.new
       end
       def [](key)
          @props[key]
       end
       
       def []
    =(key,value)
          @props[key]
    =value
       end 
    end

    m
    =Message.new

    m[
    0]=1
    p m[
    0]

    m[:a]
    ="hello"
    p m[:a]

            注意方法簽名。


    評論

    # re: Ruby Tip:定義索引操作符  回復  更多評論   

    2010-02-02 00:08 by Kai Chen
    Actually, you can write these logic more simple with ActiveSupport:

    @@@
    class Message
    attr_accessor :props
    def initialize
    @props = Hash.new
    end
    delegate '[]', '[]=', :to => :props
    end

    msg = Message.new #=> #<Message:0x103f99530 @props={}>
    msg[:id] = 1
    msg[:id] #=> 1
    @@@

    Kinda cool, right?

    Rdoc: http://api.rubyonrails.org/classes/Module.html#M000110

    # re: Ruby Tip:定義索引操作符  回復  更多評論   

    2010-02-02 09:18 by dennis
    @Kai Chen
    yeath,it's really cool.
    主站蜘蛛池模板: 欧美日韩亚洲精品| 高h视频在线免费观看| 一个人看的在线免费视频| 男人进去女人爽免费视频国产| 日本妇人成熟免费中文字幕| 亚洲av午夜成人片精品电影| 亚洲AV无码AV男人的天堂| 亚洲熟女精品中文字幕| a级成人免费毛片完整版| 成人毛片18女人毛片免费96| 亚洲精品成人无码中文毛片不卡| 亚洲天堂免费在线| 免费无码作爱视频| 国产高清在线精品免费软件| 亚洲AV乱码一区二区三区林ゆな| 亚洲爆乳无码精品AAA片蜜桃| 青青草原1769久久免费播放| 免费一级国产生活片| 亚洲成AV人片久久| aaa毛片免费观看| 在线免费观看一级毛片| 亚洲激情在线观看| 一区视频免费观看| 好吊妞在线成人免费| 亚洲五月六月丁香激情| 一级毛片不卡免费看老司机| 好先生在线观看免费播放| 亚洲理论电影在线观看| 久久无码av亚洲精品色午夜| 中文字幕在线免费| 亚洲深深色噜噜狠狠爱网站| 亚洲丰满熟女一区二区哦| 91免费人成网站在线观看18| 在线观看午夜亚洲一区| 爱情岛亚洲论坛在线观看 | 国产免费怕怕免费视频观看| 亚洲视频在线一区二区三区| 久久WWW免费人成—看片| 国产精品自在自线免费观看| 亚洲免费在线观看视频| 毛片无码免费无码播放|