• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年3月>
            2627281234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678


            專注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開(kāi)頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺(jué)尊重??!如為您帶來(lái)不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 216773
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

            http://blog.csdn.net/yuanfengyun/article/details/51842319

            在erlang中,由于沒(méi)有變量的概念,生成一個(gè)結(jié)構(gòu)以后不能夠修改,只能修改后生成新的結(jié)構(gòu)。這樣持有一個(gè)對(duì)象變得比較困難。利用進(jìn)程典存放生成的結(jié)構(gòu),通過(guò)ID進(jìn)行索引,在生成結(jié)構(gòu)時(shí),返回{結(jié)構(gòu)類型,ID},這樣就可以實(shí)現(xiàn)形如Player = player:new(), Player:set_name(), Player:get_name()這樣(C++、C#、Java)類似類的使用。  

            定義了一個(gè)player的類

            -module(player).

            -record(player,{id,name,age}).

            -compile(export_all).

            id()->
                case get(player_id) of
                    undefined->
                        put(player_id,1),
                        1;
                    ID->
                        NewID = ID + 1,
                        NewID
                end.

            new()->
                ID = id(),
                Player = #player{id=ID},
                put({player,ID},Player),
                {player,ID}.


            get_name({player,ID})->
                #player{name=Name} = get({player,ID}),
                Name.


            set_name(Name,{player,ID})->
                Player = get({player,ID}),
                NewPlayer = Player#player{name=Name},
                put({player,ID},NewPlayer).

            get_age({player,ID})->
                #player{age=Age} = get({player,ID}),
                Age.

            set_age(Age,{player,ID})->
                Player = get({player,ID}),
                NewPlayer = Player#player{age=Age},
                put({player,ID},NewPlayer).

            用法

            P = player:new().

            設(shè)置name

            P:set_name("myname").

            獲取name

            Name = P:get_name().

            實(shí)現(xiàn)中是將數(shù)據(jù)通過(guò)ID索引放在了進(jìn)程字典中,如果需要跨進(jìn)程訪問(wèn),可以放在ets中。

            posted on 2017-05-19 17:23 思月行云 閱讀(428) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Erlang
            亚洲国产成人精品久久久国产成人一区二区三区综 | 26uuu久久五月天| 国产 亚洲 欧美 另类 久久| 久久精品18| 香蕉久久夜色精品升级完成| 国产日产久久高清欧美一区| 久久九九有精品国产23百花影院| 理论片午午伦夜理片久久| 中文字幕热久久久久久久| 久久综合久久综合久久| 久久久久亚洲精品日久生情 | 国产亚洲精久久久久久无码AV| 亚洲欧洲精品成人久久奇米网| 亚洲国产精品无码久久久蜜芽| 亚洲国产成人久久精品影视| 亚洲精品白浆高清久久久久久 | 久久精品国产一区二区| 久久99国产综合精品女同| 欧美伊人久久大香线蕉综合69| 久久91精品久久91综合| 久久天天躁狠狠躁夜夜96流白浆| 久久午夜无码鲁丝片午夜精品| 99久久99这里只有免费的精品| 国产99久久久国产精品小说| 久久久久九九精品影院| 久久狠狠色狠狠色综合| 久久av无码专区亚洲av桃花岛| 热99RE久久精品这里都是精品免费| 狠狠久久综合| 国产精品VIDEOSSEX久久发布| av无码久久久久不卡免费网站| 色综合久久久久综合体桃花网 | 99久久国产免费福利| 国产精品久久免费| 久久91精品国产91久久小草| 久久99国产乱子伦精品免费| 久久国产精品成人影院| 日韩精品国产自在久久现线拍| 69久久夜色精品国产69| 久久99国产亚洲高清观看首页 | 色妞色综合久久夜夜|