【问题标题】:Ruby - undefined method '<'Ruby - 未定义的方法'<'
【发布时间】:2015-07-25 22:23:32
【问题描述】:

我正在关注有关如何将 proc 放入方法的教程。

他们问我以下问题:

“现在我们将使用年龄表。创建一个名为“young”的变量,并将调用“.select”的结果分配给“ages”,并放置“inf_100”proc 参数以过滤年龄较小的年龄大于 100。不要忘记使用与号 (&) 在块中转换您的 proc。"

所以我做了以下,但我得到了以下

错误:“[23, 101, 7, 104, 11, 94, 100, 121, 101, 70, 44]:数组"

我尝试了很多东西,但我一直犯这个错误,但我不知道是什么问题

ages = [23, 101, 7, 104, 11, 94, 100, 121, 101, 70, 44]

inf_100 = Proc.new { |i| i.select(&ages<100) } #

他们在之前的练习中问我什么

jeunes = ages.select(&inf_100) #

当前的练习

谁能告诉我哪里做错了?谢谢!

【问题讨论】:

    标签: ruby methods proc


    【解决方案1】:

    我假设上一章要求你写一个Proc,它接受一个整数并确定它是否小于100。

    应该这样写:

    inf_100 = Proc.new {|i| i < 100 }
    

    可以解释为:

    inf_100 被分配了一个Proc,它以i 为参数并返回i &lt; 100 的结果。

    【讨论】:

    • 非常感谢,它解决了这个问题!但困扰我的是,使用“inf_100 = Proc.new {|i| i
    • @Jaeger proc 不关心数组。它处理一个数字。考虑如何从一个集合中选择所有小于 100 的数字:每次从集合中选择一个数字,检查该数字是否小于 100,如果小于 100,则将其放入结果集中.看,你每次只会检查一个数字。有时我们称之为谓词select 方法接受一个谓词,逐个处理元素,并收集所有满足谓词的元素作为结果。
    猜你喜欢
    • 2019-12-25
    • 2010-10-15
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2015-10-11
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多