设为首页收藏本站

Erlang中文论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14430|回复: 0
打印 上一主题 下一主题

持续更新中。。。

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-19 23:55:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  今天想讲的就是关于erlang中的内置函数put(Key, Val)和get(Key),在工作中这两个函数我想也是很多时候会用到的。这两个函数就像连体婴,当你用到put/2的时候,你就需要用
到get/1来取出你放进的数据。而工作中多数会这样来用:
一:定义了一个key
-record(people,{name = null,sex = null,age = 0}).
-define(?KEY,key).

二:用put/2
put(?KEY,#people{name = "man",sex = m,age = 35}).

三:用get/1
case get(?KEY) of
  People when is_record(People,#people) ->
     #people{name = Name,sex =Sex,age =Age}= People;
  _ ->
     *******
神奇的是你得到的Name,Sex,Age会跟name = "man",sex = m,age = 35相同,这给我的
感觉就想C/C++中的全局变量,而放到erlang中时就变成了从监控中生成的一个进程里的全局
变量,只要你还在这个进程中操作,就算你调用其他的函数中再用get/1也可以得到同样的数据。
有疑问的是我觉得在这个进程中再创建一个进程同样调用也会得到同样数据,我估这个想法是正确的。
求解!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Erldoc.com  

GMT+8, 2024-11-24 10:10 , Processed in 0.418354 second(s), 8 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表