Ruby中的简单数据结构等同于Java

时间:2010-08-22 09:38:55

标签: java ruby

在Java中,如果我想要一个简单的数据结构,我只需在类似

的类中声明它
class MySimpleStructure{
   int data1;
   int data2;
   MyOtherDataStructure m1;
}

然后我会在我的程序中使用它,

MySimpleStructure s1 = new MySimpleStructure();
s1.data1 = 19;
s1.m1 = new MyOtherDataStructure();

如何在Ruby中进行等效实现。

2 个答案:

答案 0 :(得分:7)

class MySimpleStructure
  attr_accessor :data1, :data2, :m1
end

s1 = MySimpleStructure.new
s1.data1 = 19
s1.m1 = MyOtherDataStructure.new

答案 1 :(得分:5)

在大多数Ruby代码中,哈希用作简单的数据结构。它不像这样的效率,并且这些哈希中没有字段的定义,但是它们很像C中的结构或Java中的简单类。你当然可以像这样做自己的课程:

class MyStruct
  attr_accessor :something, :something_else
end

但Ruby也有一个可以使用的Struct类。你看不太多。

#!/usr/bin/env ruby

Customer = Struct.new('Customer', :name, :email)

c = Customer.new
c.name = 'David Lightman'
c.email = 'pwned@wopr.mil'

还有OpenStruct。

#!/usr/bin/env ruby
require 'ostruct'

c = OpenStruct.new
c.name = 'David Lightman'
c.greeting = 'How about a nice game of chess?'

我写过关于这些事情here