- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图从 Ruby Koans 中理解一些东西。在一节课中,我们制作两个类如下:
class CanNotBeTreatedAsString
def to_s
"non-string-like"
end
end
not_like_a_string = CanNotBeTreatedAsString.new
not_like_a_string == "non-string-like"
class CanBeTreatedAsString
def to_s
"string-like"
end
def to_str
to_s
end
end
like_a_string = CanBeTreatedAsString.new
like_a_string.to_str == "string-like"
def acts_like_a_string?(string)
string = string.to_str if string.respond_to?(:to_str)
string.is_a?(String)
end
assert_equal false, acts_like_a_string?(CanNotBeTreatedAsString.new)
assert_equal true, acts_like_a_string?(CanBeTreatedAsString.new)
所以这两个类和最后两个“断言”语句是我不清楚的。这两个类几乎完全相同,除了第二个类仅具有另一个调用 to_s
的函数 to_str
。我不明白为什么第二个断言语句为真(因此第二个类可以被视为字符串)仅仅是因为有第二个函数调用第一个函数。
最佳答案
这里没有魔法。第二个测试是检查 to_str
方法是否存在。这不是为 CanNotBeTreatedAsString
定义的,但它是为 CanBeTreatedAsString
定义的。
respond_to?
的作用是测试方法是否定义,在Ruby 2.0中会进一步说明是否可以调用。无法调用的 protected 方法将不再计算在内。现在,如果 respond_to?(:method_name)
返回 true
,那么带有任何必需参数的 send(:method_name)
理论上都可以工作。
第二个类可以使用 alias :to_str, :to_s
以更少的代码实现相同的结果。
关于Ruby Koans 和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13939177/
我在通过 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 。我怎样才能让它
我是一名优秀的程序员,十分优秀!