0
如果Obj是本地的,则下面的新函数不起作用。如果我从/本地删除它的作品。那么该怎么做才能使它与本地的Obj一起工作,谢谢?当然不难为你。Rebol和/ local对象
Person: make object! [
Person: func[FirstName LastName][
Self/FirstName: FirstName
Self/LastName: LastName
Print Self/FirstName
Print Self/LastName
]
FirstName: ""
LastName: ""
]
new: func[Class [Object!] Param-Block [block!] /local Obj][
Constructor: to-word pick pick Class 1 2
Obj: Make Class []
params: copy ""
foreach param Param-Block [
if string? param [
param: rejoin [{"} param {"}]
]
append params param
append params " "
]
do rejoin [{do get in Obj Constructor} { } params]
Obj
]
;FOR TEST
John: new Person["John" "Doe"]
还会送
>> probe John
make object! [
Person: func [FirstName LastName][
Self/FirstName: FirstName
Self/LastName: LastName
Print Self/FirstName
Print Self/LastName
]
FirstName: ""
LastName: ""
]
>>
也就是说名字和姓氏是 “”,而不是 “约翰”, “李四”
它担任预计当我尝试它。你遇到什么问题? – 2009-12-17 11:13:35
你已经设置了John在测试用例中返回的新值,它是值为{“John”“Doe”}的字符串。 – 2009-12-17 11:16:36
复制错误版本,以便在新的版本中返回Obj。 我的问题是: – 2009-12-17 23:28:00