- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在浏览 Ruby Koans,我在 about_proxy_object_project.rb
中遇到了麻烦这是我的解决方案
class Proxy
attr_reader :messages
def initialize(target_object)
@object = target_object
# ADD MORE CODE HERE
@messages = []
end
def number_of_times_called(method_name)
@messages.count method_name
end
def called?(method_name)
@messages.include? method_name
end
def method_missing(method_name, *args, &block)
if @object.respond_to? method_name
@object.send(method_name, *args)
@messages << method_name
else
super method_name, *args, &block
end
end
end
但是当我输入 rake
时,我得到了这个
The answers you seek...
Expected 10 to equal [:channel=, :power, :channel]
Please meditate on the following code:
/home/Shanicky/koans/about_proxy_object_project.rb:61:in `test_tv_methods_still_perform_their_function'
在我的about_proxy_object_project.rb
def test_tv_methods_still_perform_their_function
tv = Proxy.new(Television.new)
tv.channel = 10
tv.power
assert_equal 10, tv.channel # this is the 61st line
assert tv.on?
end
我很困惑
我哪里做错了?
谢谢大家
这是我的电视
类
class Television
attr_accessor :channel
def power
if @power == :on
@power = :off
else
@power = :on
end
end
def on?
@power == :on
end
end
最佳答案
在此if
子句:
if @object.respond_to? method_name
@object.send(method_name, *args)
@messages << method_name # <-- this is the return value you get
else
super method_name, *args, &block
end
支票@object.respond_to? method_name
总是评估为 true
因为Television
类定义了您在其对象上调用的所有这些方法( channel=
、 power
、 channel
)。因此if
的第一个分支运行并且此代码实质上添加到 @messages
实例变量(这是一个 Array
)您正在调用的方法名称。
所以当你调用tv.channel
该方法的返回值是上面代码中的注释语句,当然不等于10
.您实际上得到了 @messages << method_name
的返回值这是新的 @messages
数组,它实际上包含您在此之前调用的所有未定义方法:[:channel=, :power, :channel]
.
关于Ruby Koans 代理项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192173/
我在通过 Greg Malcolm 的 Python Koans 的单例元组测试之一“test_tuples_of_one_look_peculiar”时遇到困难 ( https://github.c
我无法理解 Javascript koans 中的数组引用部分: it("should know array references", function () { var array = [ "z
我想把这两行代码合二为一。 for n in exceptions: my_dict[n] += 1 令我困扰的是,一个用于递增字典的小语句需要两行。我相信这个问题也困扰着某些人。 最佳答案
我正在浏览 Ruby Koans,我在 about_proxy_object_project.rb 中遇到了麻烦这是我的解决方案 class Proxy attr_reader :messages
我试图从 Ruby Koans 中理解一些东西。在一节课中,我们制作两个类如下: class CanNotBeTreatedAsString def to_s "non-string-li
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: obj.nil? vs. obj == nil 现在通过 ruby koans 工作,发现这个评论嵌入在
我正在研究 Ruby Koans,我在弄清楚我编写的方法出了什么问题时遇到了一些麻烦。我在about_scoring_project.rb中,写了骰子游戏的计分方法: def score(dice)
我有机会在 StackOverflow 中四处看看,发现了我试图从 Ruby Koans (Ruby Koans: explicit scoping on a class definition par
谁有zip的链接? github 存储库似乎已关闭:https://github.com/neo/ruby_koans/blob/master/download/rubykoans.zip?raw=t
可能是一个业余爱好者的标志,我想知道问题是不是公案(而不是我),但是,考虑一下这个公案 def test_calling_global_methods_without_parentheses
我正在通过 Clojure Koans 工作,我正在处理递归 koans。 不明白怎么解决is-even?使用递归。练习部分地将此功能定义为: (defn is-even? [n] (if (
我正在学习 clojure 并通过 clojure-koan练习。其中一个练习是关于implementing a factorial function .在玩的过程中,我发现: 我的递归实现似乎适用于
我正在研究 clojure koans,函数中的一个问题需要进一步解释,以便我“明白”并有一个顿悟时刻。我能够编写满足问题的函数。但我不完全理解为什么所有这些都有效。 Clojure> (= 25 (
在研究Kotlin Koans in IDEA时,我摆弄了一下,我想调试我的代码。 如何在调试器下运行koan任务? 失败了,我至少在哪里可以看到我的代码中println的输出? 最佳答案 您可以创建
这几天通过做Python Koans来学习Python,遇到了Python中引发异常的问题。具体来说,在看完公案之后,我什至对 try... except... 感到困惑。我知道鲁迪·科恩 (Rudy
我一直在研究 Ruby Koans,但我已经到了我不太了解的部分。具体来说,就是about_dice_project,他们要求我们定义一个类来通过几个预先设定的测试。本来,我的类(class)看起来像
这个问题可能很愚蠢/n00bish/不合适/本地化/闪闪发光的蛋糕,所以只要我得到答案,你就可以投反对票,因为我非常希望能够通过 koans。 :) 我正在尝试获取 this上类。 (GitHub 是
我在 Ruby Koans 中遇到以下错误: AboutHashes#test_accessing_hashes_with_fetch 破坏了你的业力。 大师说: 你还没有达到开悟。 我感到沮丧。不要
你能帮我重构我为 Ruby Koans #182 提出的解决方案吗?这是您在其中编写得分方法来计算贪婪游戏分数的公案。以下代码有效,所有测试均通过。 但是,它感觉又长又不像 ruby 。我怎样才能让它
我是一名优秀的程序员,十分优秀!