Struct in Ruby

Tags:

고정개수의 필드를 갖는 구조체를 on-the-fly 생성해주는 라이브러리입니다.

(1) Struct의 정의

irb(main):001:0> Customer = Struct.new :name, :phone
=> Customer
irb(main):002:0> c = Customer.new("Minkoo", "123-456")
=> #<struct Customer name="Minkoo", phone="123-456">

name과 phone 이라는 속성을 갖는 클래스를 정의했습니다. 다음, 인스턴스를 실제로 생성했습니다.

(2) 필드 접근

irb(main):003:0> c.name
=> "Minkoo"
irb(main):004:0> c["name"]
=> "Minkoo"

(3) 필드명/값 보기

irb(main):007:0> c.each_pair { |name, val| puts "#{name} => #{val}" }
name => Minkoo
phone => 123-456
=> #</struct><struct Customer name="Minkoo", phone="123-456">

(4) Struct는 hash와 == 를 자동으로 override한다.

irb(main):009:0> c2 = Customer.new("Minkoo", "123-456")
=> #</struct><struct Customer name="Minkoo", phone="123-456">

irb(main):011:0> c == c2
=> true
irb(main):012:0> c.hash == c2.hash
=> true

실제 Struct의 구현은 C로 되어있습니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *