Slot
From Erights
(Difference between revisions)
Kevin Reid (Talk | contribs) (correct slot type names) |
(→Notable implementations: add CoercedSlot) |
||
(4 intermediate revisions not shown) | |||
Line 8: | Line 8: | ||
* [[SimpleSlot]] | * [[SimpleSlot]] | ||
* [[GuardedSlot]] | * [[GuardedSlot]] | ||
+ | * [[CoercedSlot]] | ||
* [[LamportSlot]] | * [[LamportSlot]] | ||
==Protocol== | ==Protocol== | ||
- | + | {{instance msgdoc|get|0||[[any]]}} | |
- | + | ||
Returns the current value of this slot. | Returns the current value of this slot. | ||
- | + | {{instance msgdoc|put|1|<var>newValue</var> :[[any]]|[[void]]}} | |
- | + | ||
Sets the current value to the (possibly coerced) provided value, if appropriate for this type of slot; [[throw]]s if not allowed. | Sets the current value to the (possibly coerced) provided value, if appropriate for this type of slot; [[throw]]s if not allowed. | ||
- | + | {{instance msgdoc|isFinal|0||[[boolean]]}} | |
- | + | ||
Says whether the Slot acts like a [[FinalSlot]] -- successive <code>[[#get/0|get]]()</code>s on the same slot will always give the same value. | Says whether the Slot acts like a [[FinalSlot]] -- successive <code>[[#get/0|get]]()</code>s on the same slot will always give the same value. | ||
Line 29: | Line 27: | ||
Note that final implies read-only, but read-only does not imply final. | Note that final implies read-only, but read-only does not imply final. | ||
- | + | {{instance msgdoc|readOnly|0||[[Slot]]}} | |
- | + | ||
Returns a facet allowing get/0 but not put/1. | Returns a facet allowing get/0 but not put/1. | ||
[[Category:Protocols]] | [[Category:Protocols]] | ||
+ | [[Category:ELib specification]] |
Latest revision as of 05:00, 8 November 2008
A Slot is an object which provides the behavior of the binding of a noun. "&
" in the E language allows working with slots.
A slot can also be considered a zero-dimensional collection, i.e. one which has exactly one element.
Contents |
Notable implementations
Protocol
get/0
- Signature: get() :any
Returns the current value of this slot.
put/1
Sets the current value to the (possibly coerced) provided value, if appropriate for this type of slot; throws if not allowed.
isFinal/0
- Signature: isFinal() :boolean
Says whether the Slot acts like a FinalSlot -- successive get()
s on the same slot will always give the same value.
Note that final implies read-only, but read-only does not imply final.
readOnly/0
- Signature: readOnly() :Slot
Returns a facet allowing get/0 but not put/1.