Io语言updateSlot、setSlot和newSlot的区别
来源:互联网 发布:365源码网 编辑:程序博客网 时间:2024/06/05 07:41
newSlot(slotName, aValue)
Creates a getter and setter for the slot with the name slotName and sets its default value to aValue. Returns self. For example, newSlot("foo", 1) would create slot named foo with the value 1 as well as a setter method setFoo().
::= 对应为 newSlot
setSlot(slotNameString, valueObject)Sets the slot slotNameString in the receiver to hold valueObject. Returns valueObject.
:= 对应为 setSlot
updateSlot(slotNameString, valueObject)Same as setSlot(), but raises an error if the slot does not already exist in the receiver's slot lookup path.
= 对应为 updateSlot
以上是官方的文档中的区别。
updateSlot的功能是比较好理解的。
主要问题就是setSlot和newSlot的区别
例子:
Account := Object clone
Account balance := 0
Account deposit := method(v, balance := balance + v)
myAccount := Account clone
myAccount deposit(10)
myAccount balance println
myAccount slotNames println
Account balance println
Account slotNames println
Account balance := 0
Account deposit := method(v, balance := balance + v)
myAccount := Account clone
myAccount deposit(10)
myAccount balance println
myAccount slotNames println
Account balance println
Account slotNames println
输出:
0
list()
0
list(balance, deposit, type)
list()
0
list(balance, deposit, type)
Account中的deposit调用的方法并没有改变balance的值
如果把:= 换成 ::= 则myAccount 中有slot:balance,Account中也有slot:balance,deposit 方法为myAccount创建了balance slot并赋值为Account balance加10。
如果把:=换成=,则myAccount中没有slot:balance,但是其原型Account有slot:balance。
- Io语言updateSlot、setSlot和newSlot的区别
- IO和NIO的区别
- IO和NIO的区别
- NIO和IO的区别
- IO和NIO的区别
- IO和NIO的区别
- NIO和IO的区别
- NIO和IO的区别
- IO和NIO的区别
- cc2530的通用IO和外设IO的区别
- java.io.Reader 和 java.io.InputStream 的区别
- java.io.Reader 和 java.io.InputStream的区别
- 有关IO端口和IO内存的区别
- 缓冲IO和非缓冲IO的区别(转载)
- 文件IO函数和标准IO库的区别
- 阻塞IO和非阻塞IO的区别
- java.io.Reader 和 java.io.InputStream的区别
- 阻塞IO和非阻塞IO的区别
- 五、简单 介绍一下 变量
- 读《软件测试经典教程》有感
- 最近项目总结
- SQL Server服务器级别的动态管理视图
- 习惯了等待的伤感QQ日志_散了,回忆都淡了
- Io语言updateSlot、setSlot和newSlot的区别
- 《海量数据处理常用思路和方法》
- java节省内存的几条建议
- Apache负载均衡
- SSH整合问题java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
- sql子查询中引用无效对象名
- 单播,广播和多播
- 我所使用的开发环境(软件)和那些快捷键
- MMS 原理及MMS over IMS