class Myst::Scope
- Myst::Scope
- Reference
- Object
Direct Known Subclasses
Defined in:
myst/interpreter/scope.crConstructors
Instance Method Summary
-
#[](key : String) : MTValue
A non-nilable variant of
#[]?
. - #[]=(key : String, value : MTValue) : MTValue
- #[]?(key : String) : MTValue | Nil
- #assign(key : String, value : MTValue)
-
#clear(*args, **options)
Remove all values from this scope.
-
#clear(*args, **options, &)
Remove all values from this scope.
-
#each(*args, **options)
Remove all values from this scope.
-
#each(*args, **options, &)
Remove all values from this scope.
- #has_key?(key : String)
-
#inspect(io : IO)
Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.
- #parent : Scope | Nil
- #parent=(parent : Scope | Nil)
- #values : Hash(String, MTValue)
- #values=(values : Hash(String, MTValue))
Constructor Detail
Instance Method Detail
A non-nilable variant of #[]?
. While this method may raise an exception,
it is not considered a "public" exception (it is not meant to be
reachable by userland code). Any instance where the exception propogates
outside of the interpreter should be considered a bug.
The shorthand access notations (#[]?
, #[]
, #[]=
) will all fall back to
the parent scope if the value does not exist in this scope.
The longhand #has_key?
and #assign
only operate on this scope.
Appends a String representation of this object which includes its class name, its object address and the values of all instance variables.
class Person
def initialize(@name : String, @age : Int32)
end
end
Person.new("John", 32).inspect # => #<Person:0x10fd31f20 @name="John", @age=32>