草庐IT

定义函数

全部标签

ruby - Ruby 是函数式语言吗?

维基百科说Ruby是一种函数式语言,但我并不相信。为什么或为什么不? 最佳答案 一门语言是否是函数式语言并不重要。函数式编程是一篇论文,PhilipWadler(函数式编程的本质)和JohnHughes(为什么函数式编程很重要)对其进行了最好的解释。一个有意义的问题是,“Ruby是否适合实现函数式编程的论点?”答案是“非常糟糕”。我最近就此发表了演讲。Herearetheslides. 关于ruby-Ruby是函数式语言吗?,我们在StackOverflow上找到一个类似的问题:

Ruby 阶乘函数

我要疯了:阶乘的Ruby函数在哪里?不,我不需要教程实现,我只需要库中的函数。这不是数学!我开始怀疑,它是标准库函数吗? 最佳答案 标准库中没有阶乘函数。 关于Ruby阶乘函数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2434503/

ruby-on-rails - "Ago"Ruby/Rails 中的日期/时间函数

我想知道Rails中是否有一种方法可以计算时间戳,例如-半分钟前、2分钟前、1天前等。类似于Twitter实时日期戳。我想知道Ruby/Rails是否有内置的日期时间转换函数? 最佳答案 您可以使用:10.minutes.ago2.days.since或者在您看来,您有helper:distance_of_time_in_words(from_time,to_time)time_ago_in_words(from_time)检查theAPI了解详细信息和更多选项。 关于ruby-on-r

ruby-on-rails - 在 rails 中使用 RSpec 和 Capybara 时未定义的方法 `visit'

我无法让capybara使用rspec。它给了我这个错误:undefinedmethod`visit'for#我知道有很多关于此的帖子,但没有一个解决方案适合我。其中大部分涉及不在/spec/features中的规范-我的在其中。首先是错误:$bundleexecrspecspecFFailures:1)securitysignsusersinFailure/Error:visit"/sessions/new"NoMethodError:undefinedmethod`visit'for##./spec/features/security_spec.rb:4:in`(root)'Fin

ruby 将数组转换为函数参数

假设我有一个数组。我希望将数组传递给一个函数。但是,该函数需要两个参数。有没有办法即时将数组转换为2个参数?例如:a=[0,1,2,3,4]b=[2,3]a.slice(b)在Ruby中会产生错误。我需要输入a.slice(b[0],b[1])我正在寻找更优雅的东西,如a.slice(foo.bar(b))谢谢。 最佳答案 您可以使用*(或“splat”)运算符将Array转换为参数列表:a=[0,1,2,3,4]#=>[0,1,2,3,4]b=[2,3]#=>[2,3]a.slice(*b)#=>[2,3,4]引用:Arrayto

Ruby 自定义错误类 : inheritance of the message attribute

我似乎找不到太多关于自定义异常类的信息。我所知道的你可以声明你的自定义错误类,让它继承自StandardError,这样它就可以被rescued:classMyCustomError这允许您使用以下方式提高它:raiseMyCustomError,"Amessage"稍后,在救援时收到该消息rescueMyCustomError=>eputse.message#=>"Amessage"我不知道的事我想为我的异常提供一些自定义字段,但我想从父类继承message属性。我发现阅读onthistopic@message不是异常类的实例变量,所以我担心我的继承不起作用。任何人都可以给我更多的细

ruby - RVM 不是函数,选择 'rvm use ...' 的 ruby 将不起作用

列出ruby​​版本console:~$rvmlistrvmrubiesruby-2.0.0-p481[i686]#=>-current#=*-current&&default#*-default尝试使用特定版本的rubyconsole:~$rvmuse2.0.0RVMisnotafunction,selectingrubieswith'rvmuse...'willnotwork.Youneedtochangeyourterminalemulatorpreferencestoallowloginshell.Sometimesitisrequiredtouse`/bin/bash--lo

ruby-on-rails - 在 Ruby 和/或 Rails 中在哪里定义自定义错误类型?

是否有在Ruby库(gem)或RubyonRails应用程序中定义自定义错误类型的最佳实践?具体来说:他们在项目结构上属于哪个位置?一个单独的文件,内联相关的模块/类定义,在其他地方?是否有任何约定可以确定何时以及何时不创建新的错误类型?不同的图书馆有不同的做事方式,我还没有注意到任何真正的模式。一些库总是使用自定义错误类型,而另一些库则根本不使用它们;有些具有扩展标准错误的所有错误,而另一些则具有嵌套的层次结构;有些只是空的类定义,有些则有各种巧妙的技巧。哦,只是因为我觉得称这些“错误类型”有点模棱两可,我的意思是:classAuthenticationError

ruby-on-rails - Rails 隐藏字段未定义方法 'merge' 错误

我想在Rails中做这样的事情这是我目前在rails中的内容:但是我得到了这个错误:undefinedmethod`merge'for"test":String我如何在rails中的hidden_​​field中传递值? 最佳答案 你应该这样做:"test"%>hidden_​​field需要一个散列作为第二个参数 关于ruby-on-rails-Rails隐藏字段未定义方法'merge'错误,我们在StackOverflow上找到一个类似的问题: https

ruby-on-rails - 如何找到在运行时定义方法的位置?

我们最近遇到了一个问题,在发生一系列提交后,后端进程无法运行。现在,我们是好child,每次checkin后都会运行raketest但是,由于Rails库加载中的一些奇怪之处,只有当我们在生产模式下直接从Mongrel运行它时才会发生.我追踪到了这个错误,它是由于一个新的Railsgem以一种破坏了运行时Rails代码中的一个狭窄使用的方式覆盖了String类中的一个方法。总之,长话短说,有没有办法在运行时询问Ruby在哪里定义了方法?像whereami(:foo)这样返回/path/to/some/file.rbline#45的东西?在这种情况下,告诉我它是在类String中定义的将