class Reference
Overview
Reference is the base class of classes you define in your program.
It is set as a class' superclass when you don't specify one:
class MyClass # < Reference
end
A reference type is passed by reference: when you pass it to methods, return it from methods or assign it to variables, a pointer is actually passed.
Invoking new on a Reference allocates a new instance on the heap.
The instance's memory is automatically freed (garbage-collected) when
the instance is no longer referred by any other entity in the program.
Direct Known Subclasses
- Array(T)
 - Benchmark::BM::Job
 - Benchmark::BM::Tms
 - Benchmark::IPS::Entry
 - Benchmark::IPS::Job
 - Box(T)
 - Channel(T)
 - Crypto::Bcrypt
 - Crypto::Bcrypt::Password
 - Crypto::Blowfish
 - Crystal::Macros::ASTNode
 - CSV
 - CSV::Builder
 - CSV::Lexer
 - CSV::Parser
 - Deque(T)
 - Digest::Base
 - Dir
 - Event::SignalChildHandler
 - Event::SignalHandler
 - Exception
 - Fiber
 - Gzip::Header
 - Hash(K, V)
 - HTTP::Client
 - HTTP::Client::Response
 - HTTP::CompressHandler
 - HTTP::Cookie
 - HTTP::Cookies
 - HTTP::ErrorHandler
 - HTTP::FormData::Builder
 - HTTP::FormData::Parser
 - HTTP::LogHandler
 - HTTP::Multipart::Builder
 - HTTP::Multipart::Parser
 - HTTP::Params::Builder
 - HTTP::Request
 - HTTP::Server
 - HTTP::Server::Context
 - HTTP::Server::RequestProcessor
 - HTTP::StaticFileHandler
 - HTTP::WebSocket
 - HTTP::WebSocketHandler
 - INI
 - IO
 - Iterator::Stop
 - JSON::Builder
 - JSON::Lexer
 - JSON::Parser
 - JSON::PullParser
 - JSON::Token
 - Levenshtein::Finder
 - LLVM::ABI
 - LLVM::ABI::FunctionType
 - LLVM::Builder
 - LLVM::Context
 - LLVM::FunctionPassManager
 - LLVM::GenericValue
 - LLVM::JITCompiler
 - LLVM::MemoryBuffer
 - LLVM::Module
 - LLVM::ModulePassManager
 - LLVM::PassManagerBuilder
 - LLVM::TargetMachine
 - Logger
 - Markdown
 - Markdown::HTMLRenderer
 - Markdown::Parser
 - Mutex
 - OAuth2::AccessToken
 - OAuth2::Client
 - OAuth2::Session
 - OAuth::AccessToken
 - OAuth::Consumer
 - OAuth::RequestToken
 - OpenSSL::Digest
 - OpenSSL::HMAC
 - OpenSSL::MD5
 - OpenSSL::SHA1
 - OpenSSL::SSL::Context
 - OptionParser
 - PrettyPrint
 - Process
 - Process::Status
 - Random::ISAAC
 - Random::PCG32
 - Regex
 - Spec::VerboseFormatter::Item
 - String
 - StringPool
 - StringScanner
 - URI
 - WeakRef(T)
 - YAML::Builder
 - YAML::Nodes::Builder
 - YAML::Nodes::Node
 - YAML::ParseContext
 - YAML::PullParser
 - Zip::File
 - Zip::File::Entry
 - Zip::Reader
 - Zip::Reader::Entry
 - Zip::Writer
 - Zip::Writer::Entry
 
Defined in:
primitives.crreference.cr
Constructors
Instance Method Summary
- 
        #==(other : self)
        
          
Returns
trueif this reference is the same as other. - 
        #==(other)
        
          
Returns
false(other can only be aValuehere). - 
        #dup
        
          
Returns a shallow copy of this object.
 - #hash(hasher)
 - #inspect(io : IO) : Nil
 - 
        #object_id : UInt64
        
          
Returns a
UInt64that uniquely identifies this object. - #pretty_print(pp) : Nil
 - 
        #same?(other : Reference)
        
          
Returns
trueif this reference is the same as other. - 
        #same?(other : Nil)
        
          
Returns
false: a reference is nevernil. - #to_s(io : IO) : Nil
 
Instance methods inherited from class Object
  
  
    
      !=(other)
    !=, 
    
  
    
      !~(other)
    !~, 
    
  
    
      ==(other)
    ==, 
    
  
    
      ===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, class class, dup dup, hash(hasher)
hash hash, inspect(io : IO)
inspect inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s
to_s(io : IO) to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as
Constructor methods inherited from class Object
  
  
    
      from_json(string_or_io, root : String) : selffrom_json(string_or_io) : self from_json, from_yaml(string_or_io : String | IO) : self from_yaml
Constructor Detail
Instance Method Detail
Returns a shallow copy of this object.
This allocates a new object and copies the contents of
self into it.
Returns a UInt64 that uniquely identifies this object.
The returned value is the memory address of this object.
string = "hello"
string.object_id # => 4460249568
pointer = Pointer(String).new(string.object_id)
string2 = pointer.as(String)
string2.object_id == string.object_id # => trueReturns true if this reference is the same as other. This is only
true if this reference's #object_id is the same as other's.