erlang模块化对象用法
来源:互联网 发布:手机硬件修复软件 编辑:程序博客网 时间:2024/05/18 00:24
在erlang中,由于没有变量的概念,生成一个结构以后不能够修改,只能修改后生成新的结构。这样持有一个对象变得比较困难。利用进程典存放生成的结构,通过ID进行索引,在生成结构时,返回{结构类型,ID},这样就可以实现形如Player = player:new(), Player:set_name(), Player:get_name()这样(C++、C#、JAVA)类似类的使用。
定义了一个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().
设置name
P:set_name("myname").
获取name
Name = P:get_name().
实现中是将数据通过ID索引放在了进程字典中,如果需要跨进程访问,可以放在ets中。
0 0
- erlang模块化对象用法
- erlang when 用法
- 函数式程序的模块化和对象的模块化
- Erlang入门第二期:Erlang“记录”的用法及注意事项
- RequireJS:javascript模块化工具基本用法详解
- Javascript模块化编程:require.js的用法
- Javascript模块化编程:require.js的用法
- Javascript模块化编程:require.js的用法
- Javascript模块化编程:require.js的用法
- JS模块化工具requirejs的基本用法
- Javascript模块化编程:require.js的用法
- xml--include用法--xml文件模块化
- require.js的用法(模块化编程)
- Javascript模块化编程require.js的用法
- Javascript模块化编程:require.js的用法
- Javascript-类-模块化[面向对象已经无处不在]
- Javascript 模块化编程(对象写法)
- 模块化
- 教你手工检测SQL注入
- The entitlements specified in your application’s Code Signing Entitlements file do not match those s
- hibernate插入数据库乱码的两种解决方式
- Ubuntu安装git时出现问题
- gops-企业级集中身份认证及授权管理实践freeipa
- erlang模块化对象用法
- 如果忘记了密码,或系统显示信息称设备已停用
- Java线程并发中常见的锁
- Android LayoutInflate.Inflate(二)
- sublime text packagecontrol安装主题
- 日志分析系统框架
- APP开发实战80-Fragment的使用场景
- 这里有一份面筋请查收(八)
- Linux first try