struct Symbol

Overview

A symbol is a constant that is identified by a name without you having to give it a numeric value.

:hello
:welcome
:123
:"symbol with spaces"

Internally a symbol is represented as an Int32, so it's very efficient.

You can't dynamically create symbols: when you compile your program each symbol gets assigned a unique number.

Included Modules

Defined in:

symbol.cr
json/to_json.cr
yaml/to_yaml.cr

Class Method Summary

Instance Method Summary

Instance methods inherited from module Comparable(T)

<(other : T) <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) >, >=(other : T) >=, between?(min, max) between?

Instance methods inherited from struct Value

! !, ==(other) ==, nil? nil?

Instance methods inherited from class Object

! !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other) ===, =~(other) =~, class class, clone clone, crystal_type_id crystal_type_id, dup dup, hash hash, inspect
inspect(io : IO)
inspect
, itself itself, not_nil! not_nil!, tap(&block) tap, to_json to_json, to_pretty_json(io : IO)
to_pretty_json
to_pretty_json
, to_s
to_s(io : IO)
to_s
, to_yaml(io : IO)
to_yaml
to_yaml
, try(&block) try

Class methods inherited from class Object

==(other : Class) ==, ===(other) ===, cast(other) : self cast, from_json(string_or_io) from_json, from_yaml(string : String) from_yaml, hash hash, inspect(io) inspect, name : String name, to_s(io) to_s

Class Method Detail

def self.needs_quotes?(string) #

Determines if a string needs to be quoted to be used for a symbol.

Symbol.needs_quotes? "string"      # => false
Symbol.needs_quotes? "long string" # => true

[View source]

Instance Method Detail

def !=(other : Symbol) #

Returns true if this Symbol is not equal to other.


def <=>(other : Symbol) #

Compares symbol with other based on String#<=> method. Returns -1, 0 or +1 depending on whether symbol is less than, equal to, or greater than other_symbol. See String#<=> for more information.


[View source]
def ==(other : Symbol) #

Returns true if this Symbol is equal to other.


def hash #

def inspect(io : IO) #

Returns the symbol literal representation as a string.

:crystal.inspect # => ":crystal"

[View source]
def to_i #

def to_json(io) #

[View source]
def to_s(io : IO) #

Appends the symbol's name to the passed IO.

:crystal.to_s # => "crystal"

[View source]
def to_s #

def to_yaml(yaml : YAML::Generator) #

[View source]