- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我是一个有点初学者的程序员,有使用 Processing 的背景。我目前正在尝试使用 Shoes 制作应用程序,但我对对象和类的工作方式感到困惑。
我知道以下将在 Ruby 中运行:
class Post
def self.print_author
puts "The author of all posts is Jimmy"
end
end
Post.print_author
但为什么下面的代码不能在 Shoes 中运行?我如何让它运行?
class Post
def self.print_author
para "The author of all posts is Jimmy"
end
end
Shoes.app do
Post.print_author
end
最佳答案
我对 Shoes 不太熟悉,但您可能遇到的问题是您正试图在 Post
上调用一个名为 para
的方法类,不存在这样的方法。
当您调用 Shoes.app do ...
时,我怀疑 Shoes 正在将当前执行上下文更改为包含这些方法的执行上下文。也就是说,您应该期望它会起作用:
Shoes.app do
para "The author of all posts is Jimmy"
end
这相当于:
Shoes.app do
self.para("The author of all posts is Jimmy")
end
当您调用 Post.print_author
时,self
不再是 Shoes 对象,而是 Post 类。此时您有几个选择:
传入 Shoes 实例,并在其上调用特定于 Shoes 的方法。当您不需要来自 Post 的任何状态时,您可能应该这样做:
class Post
def self.print_author(shoes)
shoes.para "The author of all posts is Jimmy"
end
end
Shoes.app do
Post.print_author(self)
end
创建一个接受 Shoes 对象的 Post 类,这样您就不必一直传递它。如果 Post 将有任何大量的状态,你应该这样做:
class Post
def initialize(shoes)
@shoes = shoes
end
def print_author
@shoes.para "The author of all posts is Jimmy"
end
end
Shoes.app do
post = Post.new(self)
post.print_author
end
您可以在 2. 选项上使用变体来自动将调用传递给 @shoes
对象。这开始涉及 Ruby 元编程,我建议您在熟悉 Ruby 之前避免使用它,但我将它留在这里是为了激起您的兴趣:
class Post
def initialize(shoes)
@shoes = shoes
end
def print_author
para "The author of all posts is Jimmy"
end
def method_missing(method, *args, &block)
@shoes.send(method, *args, &block)
end
end
Shoes.app do
post = Post.new(self)
post.print_author
end
它的作用是告诉 Ruby “如果在 Post 实例上找不到方法,请尝试将它发送到 @shoes 实例”。可以想象,这可以实现一些非常好的 DSL,但您必须小心使用它,因为如果滥用它会使代码难以理解。
关于ruby - 如何在 Shoes 中使用类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26982986/
一旦在 Shoes 中创建了一个按钮,是否可以更改文本?我试过修改按钮样式中的 :text 键——@button.style.inspect 确认文本已更改——但按钮仍显示原始文本。 最佳答案 我还没
我似乎无法让 Ruby Shoes 打包程序正确创建包含 Shoes 的 exe。我正在使用 Raisins 版本 (0.r1134),其中的 pack.rb 已从 github 中替换。打包程序制作
flow 中的默认垂直对齐方式插槽显然是顶部对齐元素。这是一个示例: Shoes.app (:title => "Vertical Alignment", :width => 300, :height
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我有一个向用户显示组合框的功能。 def select_interface(interfaces) list_box :items => interfaces do |list| inte
大家好。我正在使用 Shoes 为 Ruby 项目制作 GUI。 我有一个名为 Manager 的类(如在内存管理器中),它从文件中加载“进程列表”,将其拆分并在进行某个执行调用时将内容分配给内存中的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 2年前关闭。 Improve this qu
我试图制作一个图像,当左键单击时数字增加 1,右键单击时数字降低。我能够使用以下代码让鞋子检测到单击了哪个按钮: Shoes.app do @info = para "No button pres
好吧,我对 Shoes 中的很多东西都不是很确定,但到目前为止,我的试错法在这方面让我失败了。 我有一个类执行某种需要一段时间的计算,我想抛出一个进度条供用户在完成时查看。如果通过一个 block ,
我正在尝试构建一个非常简单的矢量绘图程序。 (实际上,它是其他人的基础)。我已经实现了缩放和平移,但我想像在 autocad 或 sketchup 中一样工作。也就是说,滚动鼠标滚轮时进行缩放,按下时
我正在尝试为我的 Shoes 应用程序创建自己的热键,但我不确定如何读取与另一个键组合的命令键,我的代码: keypress do |:command_1| alert "Press
来自 Hacketyhack.net 的(Ruby Shoes)打包解决方案不起作用。谁能指出我的替代方案? 最佳答案 有一个shoes/shoes github托管最新二进制文件的项目。但是,从(2
我正在尝试扩展我已经编写的使用 Shoes 的 Ruby 应用程序。我有一个我已经编写的类,我希望能够在该类中使用 GUI。也就是说,我希望我的类(class)有这样的东西: class MyClas
我一直在尝试为堆栈设置背景图像,但我无法让它工作,我做错了什么吗?这是我的代码 Shoes.app(:width => 550, :height => 450) do #Main cont
在 Shoes 中,我想创建一个最初隐藏的按钮。我试过将 :hidden => true 作为按钮样式的一部分传递,并在创建它后调用 @button.hide(),但它仍然顽固地可见。 我已经能够通过
我正在尝试使用 Shoes 编写一个简单的工具。这将为我们使用的一种晦涩的脚本语言缩进代码。它有一个大文本框和一个按钮。我有在命令行上运行的程序,但我没有运气将其包装在 Shoes 中。如果任何人都可
我是一个有点初学者的程序员,有使用 Processing 的背景。我目前正在尝试使用 Shoes 制作应用程序,但我对对象和类的工作方式感到困惑。 我知道以下将在 Ruby 中运行: class Po
自从_why 带着他的玩具回家以来,很多信息似乎都过时了,但我很乐意将其用作我家人的教育工具。 谢谢。 最佳答案 _why走了,但他的玩具被many小心翼翼地保存着. 你仍然可以找到Shoes在线,包
令人鼓舞的是,Shoes(Ruby GUI 框架)具有出色的打包功能,但我担心它实际上并没有“包装”自己创建的应用程序。 OSX 打包在 .app 系统中输出鞋子安装程序和鞋子文件。 shoes 有什
我想开始修补 Shoes .有一件事我想不通。保存对源代码的更改后如何重新加载正在运行的 Shoes 应用程序?我已经找到了打开帮助、控制台和新应用程序的热键。 对我来说,开发人员每次进行更改时都被迫
我是一名优秀的程序员,十分优秀!