Ruby中有沒有類似於Pascal記錄的數據結構?Ruby中有沒有類似於Pascal記錄的數據結構?
我想定義一個約有15-20個字段的記錄類型,它們都是字符串。
我試圖定義一個類用於此目的,但我意識到,我必須定義getter和setter方法:
class Data
def description
@description
end
def size
@size
end
def address
@address
end
.
. all other (about 15 variables...)
.
def description=(value)
@description = value
end
def size=(value)
@size=value
end
def address=(value)
@address=value
end
.
. more setter method (about 15 times...)
.
end
定義所有的15-20場和getter/setter方法這種方法是相當煩人。有沒有更簡單的方法來做到這一點?例如:
class Data
desc, size, address=""
end
或類似的東西,然後我就可以創建數據類的一個新實例:
d=Data.new
,然後設置實例變量:
d.desc="bla"
d.size="50.66"
d.address="Bla street 20."
我已經有了一個方法,可以用XMLSimple gem來解析XML文件,我想從解析的數據中創建一個記錄(或類),並用「return」關鍵字返回。然後我想訪問記錄的字段:d.size,d.address,d.description等。例如:
def data_import(fname="1.xml")
data = XmlSimple.xml_in(fname,{'SuppressEmpty' => ""})
d=Data.new()
d.desc=data['desc'][0]
d.size=data['size'][0]
d.address=data['address'][0]
d. ... =
d. ... = (about 15-20 times)
d. ... =
return d
end
我的XML(1.XML):
<entity>
<desc>bla</desc>
<size>50.66</size>
<address>Bla street 20.</address>
.
. (15-20 more fields)
.
</entity>
在Pascal語言(而據我所知,在C++中)有所謂的 「記錄」 的數據結構此目的。
在Pascal中有一個特徵「with」: 'd do begin – Konstantin