据我所知,如果我想做的就是把“放”放在控制台中,那么我就不必问这个问题了。 (但是,最后我自己在StackOverflow问你所有人,虽然我多年来一直在访问。)
这是我的问题:
(当然,如果我不使用鞋子,这应该有效。)
以下是我的代码的相关部分:
class Inits
# Declares all global vars used
def init1
...
end
def initattrib
@id = "###"
@name = "name undef"
alert("Alert: default attrib set")
end
def id
@id
#alert("Alert: id call")
end
def name
@name
#alert("Alert: name call")
end
def id=(newid)
@id = newid
#alert("Alert: id set")
end
def name=(newname)
@name = newname
#alert("Alert: name set")
end
end
然后我尝试调用id并将其设置为:
Shoes.app :width => 800, :height => 600, :resizable => false do
currclass = Inits.new
currclass.init1
currclass.initattrib
.
.
.
id = "123"
name = "new name"
# I declare something to click here
click { currclass.id = id, currclass.name = name }
# Then I try to display it as so:
para currclass.id
para currclass.name
# But of course the value is not displayed -- just the default value
end
...顺便说一句,我很确定我应该使用实例变量而不是类变量(@x,而不是@@ x)。
有什么方法可以“更新更新”(“时钟上升沿”是一个很好的类比)或其他一些方式来调用它?
无论如何,请提前感谢您对我未正确行事的任何建议。也许存在误解。
答案 0 :(得分:0)
你使用鞋子学习的第一件事:它是一个元编程丛林。
Shoes有默认程序的钩子,我确信它也有一个用于创建类的程序,因此Shoes可以将自己的魔法添加到指定的类中。 这意味着一个类定义的在Shoes.app之外的现在可能与在 Shoes.app中定义的一样工作。
尝试移动Shoes.app块内的所有内容,我在Shoes.app之外放置了一些代码(通常是范围问题)。
答案 1 :(得分:0)
如果我理解你想做什么,你应该这样做:
class Cos
attr_accessor :co
def initialize(cos)
@co=cos
end
end
Shoes.app :width => 800, :height => 600, :resizable => false do
@cosik = Cos.new("ddd")
@ap=para(@cosik.co)
button "click" do
@cosik.co = "oj"
@ap.text=@cosik.co
end
end
ķ