abstract class Class
Defined in:
class.crprimitives.cr
Constructors
-
.cast(other) : self
Casts other to this class.
Class Method Summary
-
.<(other : T.class) : Bool forall T
Returns whether this class inherits or includes other.
-
.<=(other : T.class) : Bool forall T
Returns whether this class inherits or includes other, or is equal to other.
-
.==(other : Class) : Bool
Returns whether this class is the same as other.
-
.===(other)
Case equality.
-
.>(other : T.class) : Bool forall T
Returns whether other inherits or includes
self. -
.>=(other : T.class) forall T
Returns whether other inherits or includes
self, or is equal toself. -
.|(other : U.class) forall U
Returns the union type of
selfand other. - .clone
-
.dup
Returns a shallow copy of this object.
- .hash(hasher)
-
.inspect(io : IO) : Nil
Appends a string representation of this object to the given
IOobject. -
.name : String
Returns the name of this class.
-
.nilable? : Bool
Returns
trueifnilis an instance of this type. - .to_s(io : IO) : Nil
Instance Method Summary
-
#<(other : T.class) : Bool forall T
Returns whether this class inherits or includes other.
-
#<=(other : T.class) : Bool forall T
Returns whether this class inherits or includes other, or is equal to other.
-
#==(other : Class) : Bool
Returns whether this class is the same as other.
-
#===(other)
Case equality.
-
#>(other : T.class) : Bool forall T
Returns whether other inherits or includes
self. -
#>=(other : T.class) forall T
Returns whether other inherits or includes
self, or is equal toself. -
#|(other : U.class) forall U
Returns the union type of
selfand other. -
#cast(other) : self
Casts other to this class.
- #clone
-
#dup
Returns a shallow copy of this object.
- #hash(hasher)
-
#inspect(io : IO) : Nil
Appends a string representation of this object to the given
IOobject. -
#name : String
Returns the name of this class.
-
#nilable? : Bool
Returns
trueifnilis an instance of this type. - #to_s(io : IO) : Nil
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Casts other to this class.
This is the same as using as, but allows the class to be passed around as
an argument. See the
documentation on as
for more information.
klass = Int32
number = [99, "str"][0]
typeof(number) # => (String | Int32)
typeof(klass.cast(number)) # => Int32
Class Method Detail
Returns whether this class inherits or includes other.
Int32 < Number # => true
Int32 < Value # => true
Int32 < Int32 # => false
Int32 <= String # => false
Returns whether this class inherits or includes other, or is equal to other.
Int32 < Number # => true
Int32 < Value # => true
Int32 <= Int32 # => true
Int32 <= String # => false
Returns whether this class is the same as other.
Int32 == Int32 # => true
Int32 == String # => false
Case equality.
The #=== method is used in a case ... when ... end expression.
For example, this code:
case value
when x
# something when x
when y
# something when y
end
Is equivalent to this code:
if x === value
# something when x
elsif y === value
# something when y
end
Object simply implements #=== by invoking #==, but subclasses
(notably Regex) can override it to provide meaningful case-equality semantics.
Returns whether other inherits or includes self.
Number > Int32 # => true
Number > Number # => false
Number > Object # => false
Returns whether other inherits or includes self, or is equal
to self.
Number >= Int32 # => true
Number >= Number # => true
Number >= Object # => false
Returns the union type of self and other.
Int32 | Char # => (Int32 | Char)
Returns a shallow copy of this object.
Because Value is a value type, this method returns self,
which already involves a shallow copy of this object because
value types are passed by value.
Appends a string representation of this object
to the given IO object.
Similar to #to_s(io), but usually appends more information
about this object.
See #inspect.
Returns true if nil is an instance of this type.
Int32.nilable? # => false
Nil.nilable? # => true
(Int32 | String).nilable? # => false
(Int32 | Nil).nilable? # => true
NoReturn.nilable? # => false
Value.nilable? # => true
Appends a String representation of this object
to the given IO object.
An object must never append itself to the io argument,
as this will in turn call #to_s(io) on it.
Instance Method Detail
Returns whether this class inherits or includes other.
Int32 < Number # => true
Int32 < Value # => true
Int32 < Int32 # => false
Int32 <= String # => false
Returns whether this class inherits or includes other, or is equal to other.
Int32 < Number # => true
Int32 < Value # => true
Int32 <= Int32 # => true
Int32 <= String # => false
Returns whether this class is the same as other.
Int32 == Int32 # => true
Int32 == String # => false
Case equality.
The #=== method is used in a case ... when ... end expression.
For example, this code:
case value
when x
# something when x
when y
# something when y
end
Is equivalent to this code:
if x === value
# something when x
elsif y === value
# something when y
end
Object simply implements #=== by invoking #==, but subclasses
(notably Regex) can override it to provide meaningful case-equality semantics.
Returns whether other inherits or includes self.
Number > Int32 # => true
Number > Number # => false
Number > Object # => false
Returns whether other inherits or includes self, or is equal
to self.
Number >= Int32 # => true
Number >= Number # => true
Number >= Object # => false
Returns the union type of self and other.
Int32 | Char # => (Int32 | Char)
Casts other to this class.
This is the same as using as, but allows the class to be passed around as
an argument. See the
documentation on as
for more information.
klass = Int32
number = [99, "str"][0]
typeof(number) # => (String | Int32)
typeof(klass.cast(number)) # => Int32
Returns a shallow copy of this object.
Because Value is a value type, this method returns self,
which already involves a shallow copy of this object because
value types are passed by value.
Appends a string representation of this object
to the given IO object.
Similar to #to_s(io), but usually appends more information
about this object.
See #inspect.
Returns true if nil is an instance of this type.
Int32.nilable? # => false
Nil.nilable? # => true
(Int32 | String).nilable? # => false
(Int32 | Nil).nilable? # => true
NoReturn.nilable? # => false
Value.nilable? # => true