Skip to content

Instantly share code, notes, and snippets.

@blocknotes
Created October 6, 2022 06:52
Show Gist options
  • Save blocknotes/8ff322ee97d4821949ad8f1a16d40671 to your computer and use it in GitHub Desktop.
Save blocknotes/8ff322ee97d4821949ad8f1a16d40671 to your computer and use it in GitHub Desktop.
Some random experiments
class Player
def initialize(name)
puts "-1- self.name object_id => #{self.name.object_id}\n\n"
puts '[initialize] self.name = name'
self.name = name
puts "-2- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts '[initialize] @name = name'
@name = name
puts "-3- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts "[initialize] @name = 'another name'"
@name = 'another name'
puts "-4- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
end
def change_name(name)
puts '[change_name] @name = name'
@name = name
puts "-5- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts '[change_name] self.name = name'
self.name = name
puts "-6- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
end
attr_accessor :name
end
# ---
player = Player.new('A name')
player.change_name('A new name')
<<~OUTPUT
-1- self.name object_id => 8
[initialize] self.name = name
-2- @name object_id => 60, self.name object_id => 60
[initialize] @name = name
-3- @name object_id => 60, self.name object_id => 60
[initialize] @name = 'another name'
-4- @name object_id => 80, self.name object_id => 80
[change_name] @name = name
-5- @name object_id => 100, self.name object_id => 100
[change_name] self.name = name
-6- @name object_id => 100, self.name object_id => 100
OUTPUT
class Player
def initialize(name)
puts "-1- @name object_id => #{@name.object_id}\n\n"
puts '[initialize] @name = name'
@name = name
puts "-2- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts '[initialize] self.name = name'
self.name = name
puts "-2- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts "[initialize] self.name = 'another name'"
self.name = 'another name'
puts "-4- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
end
def change_name(name)
puts '[change_name] self.name = name'
self.name = name
puts "-5- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
puts '[change_name] self.name = name'
@name = name
puts "-6- @name object_id => #{@name.object_id}, self.name object_id => #{self.name.object_id}\n\n"
end
attr_accessor :name
end
# ---
player = Player.new('A name')
player.change_name('A new name')
<<~OUTPUT
-1- @name object_id => 8
[initialize] @name = name
-2- @name object_id => 60, self.name object_id => 60
[initialize] self.name = name
-2- @name object_id => 60, self.name object_id => 60
[initialize] self.name = 'another name'
-4- @name object_id => 80, self.name object_id => 80
[change_name] self.name = name
-5- @name object_id => 100, self.name object_id => 100
[change_name] self.name = name
-6- @name object_id => 100, self.name object_id => 100
OUTPUT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment