Object Creation CAVEAT EMPTOR!!!

10
Object Creation CAVEAT EMPTOR!!! Addendum to unit 8 Gideon Frieder 2012

description

Object Creation CAVEAT EMPTOR!!!. Addendum to unit 8 Gideon Frieder 2012. irb(main):001:0> a = 5=> 5. irb(main):002:0> a.object_id => 11. irb(main):003:0> b = 6 => 6. irb(main):004:0> b.object_id => 13. irb(main):005:0> b = a => 5. - PowerPoint PPT Presentation

Transcript of Object Creation CAVEAT EMPTOR!!!

Page 1: Object Creation CAVEAT EMPTOR!!!

Object CreationCAVEAT EMPTOR!!!

Addendum to unit 8Gideon Frieder 2012

Page 2: Object Creation CAVEAT EMPTOR!!!

irb(main):001:0> a = 5 => 5

irb(main):002:0> a.object_id => 11

irb(main):003:0> b = 6 => 6

irb(main):004:0> b.object_id => 13

irb(main):005:0> b = a => 5

irb(main):006:0> b.object_id => 11

Page 3: Object Creation CAVEAT EMPTOR!!!

irb(main):001:0> a = [1,2,3] => [1, 2, 3]

irb(main):002:0> a.object_id =>15627456

irb(main):003:0> b = a => [1, 2, 3]

irb(main):004:0> b.object_id =>15627456

irb(main):005:0> a => [1, 2, 3]

irb(main):006:0> b => [1, 2, 3]

Page 4: Object Creation CAVEAT EMPTOR!!!

Now see this…….

irb(main):007:0> a[1] = 99 => 99

irb(main):008:0> a => [1, 99, 3]

PART of a is changed

irb(main):009:0> b => [1, 99, 3]

What about b?

Page 5: Object Creation CAVEAT EMPTOR!!!

irb(main):003:0> a.object_id =>16770948

irb(main):001:0> a = [1,2,3] => [1, 2, 3]

irb(main):006:0> b.object_id =>16770948

irb(main):004:0> b.object_id =>16263168

irb(main):002:0> b = Array.new => []

irb(main):005:0> b = a => [1, 2, 3]

irb(main):007:0> a[1] = 99 => 99

irb(main):008:0> a => [1, 99, 3]

irb(main):009:0> b => [1, 99, 3]

Page 6: Object Creation CAVEAT EMPTOR!!!

irb(main):002:0> b = Array.new(a) =>[1, 2, 3]

irb(main):001:0> a = [1,2,3] => [1, 2, 3]

irb(main):006:0> a => [1, 99, 3]

irb(main):003:0> a.object_id => 16007148

irb(main):004:0> b.object_id => 16833036

irb(main):005:0> a[1] = 99 => 99

irb(main):006:0> b => [1, 2, 3]

Page 7: Object Creation CAVEAT EMPTOR!!!

New value assignment creates new object

Assigning of an existing object name to anothername does NOT create a new object,

It creates a duplicate name for the same object

Page 8: Object Creation CAVEAT EMPTOR!!!
Page 9: Object Creation CAVEAT EMPTOR!!!
Page 10: Object Creation CAVEAT EMPTOR!!!