jjzjj

ruby - 模仿另一个 Ruby 类,使对象通过 === 类型检查

我想创建一个充当特定类的对象,例如Fixnum,但不是该类或其子类的实例。这有多种用例。在Fixnum案例中,我想定义一个更具体的整数类型,它本质上是Fixnum但也实现了一些额外的逻辑。我不能对Fixnum本身进行子类化,因为不能对Fixnum和Symbol等直接类型进行子类化。另一个用例是在自动化测试中进行模拟:有时您想要创建一个对象,它的行为类似于某个类(通常是模型实例),但出于技术原因不是该类的实例。下面是如何创建一个特定的整数类型,将所有方法委托(delegate)给一个内部存储的fixnum:require'delegate'require'forwardable'#int

ruby-on-rails - 从 Fixnum 整数 Ruby on Rails 中获取每个单独的数字

这是一个真正的super新手问题。我在数据库中存储了一个年龄。当我从数据库中获取年龄时,我想获取每个单独的数字。例子:User.age=25我想得到以下信息:first=5second=2我似乎无法从数据中将其作为一个固定数字来解决。任何人都知道一个干净简单的解决方案。 最佳答案 您可以转换为字符串,然后拆分为数字,例如first,second=User.age.to_s.split('')=>["2","5"]如果您需要将单个数字作为Fixnums返回,您可以将它们映射回来,例如first,second=User.age.to_s

ruby - ' +' can' t 将 Fixnum 转换为字符串 (TypeError)

我遇到了“无法将Fixnum转换为字符串(TypeError)”错误,虽然它看起来很简单,但我不确定如何解决它。我认为我的逻辑是合理的——将输入的字符串变量转换为整数,然后执行基本操作——但显然我遗漏了一些关键信息。puts'Whatisyourfavouritenumber?'favenum=gets.chompbetter=favenum.to_i+1puts'Yeah'+favenum+'isniceenoughbut'+better+'isbiggerandbetterbyfar!Thinkon.'我曾尝试寻找答案,但相同错误的示例远远超出了我目前基本的ruby​​技能。

ruby - 修补 Ruby 的基类(例如 Fixnum)是否可以接受?

我对Ruby还是很陌生(通读Pickaxe并将大部分时间花在irb上),现在我知道可以在Ruby中修补类,我想知道什么时候这样做是可以接受的,特别是修补Ruby的基类是否可以接受。例如:我回答了另一个Ruby问题here张贴者想知道如何从DateTime中减去小时数。由于DateTime类似乎没有提供此功能,因此我发布了一个答案,将DateTime和Fixnum类作为可能的解决方案进行了修补。这是我提交的代码:require'date'#Aplaceholderclassforholdingasetnumberofhours.#Usedsowecanknowwhentochangeth

Ruby 没有将 Fixnum 隐式转换为 String (TypeError)

我正在尝试回答ChrisPine的“学习编程”一书中的以下问题:Leapyears.Writeaprogramthatasksforastartingyearandanendingyearandthenputsalltheleapyearsbetweenthem(andincludingthem,iftheyarealsoleapyears).Leapyearsareyearsdivisibleby4(like1984and2004).However,yearsdivisibleby100arenotleapyears(suchas1800and1900)unlesstheyareal

ruby-on-rails - 在 rake db :create 期间无法将 fixnum 转换为字符串

刚刚使用Rails3.0创建了一个新的博客应用我的模型很简单:classPost我使用了命令:railsgeneratescaffoldposttitle:stringbody:textetc.创建这些文件。现在我想使用以下方法生成数据库:rake数据库:创建我得到了错误:rakeaborted!can'tconvertFixnumintoString知道问题是什么吗?我正在学习本教程:http://sixrevisions.com/web-development/how-to-create-a-blog-from-scratch-using-ruby-on-rails/这是痕迹:**

ruby - 数组类型错误 : can't convert Fixnum into String

我正在尝试使用数组,并且正在阅读SteveHolzner所著的“BeginningRubyonRails”一书。我制作了程序:array=['Hello','there',1,2]putsarray[1]putsarray[3]putsarray.lengtharray2=Array.newputsarray2.lengtharray2[0]="Banana"array2[1]=6putsarray2[0]+""+array2[1]putsarray3.length它并没有做太多,但是当我运行它时我得到了错误arrays.rb:9:in`+':can'tconvertFixnumint

ruby - Integer 和 Fixnum 有什么区别?

我知道Fixnum类继承自Integer类。但它们之间的实际区别是什么?是否存在我们有时使用Fixnum而有时使用Integer的用例? 最佳答案 更新:从Ruby2.4开始,Fixnum和Bignum类都消失了,只有Integer.完全相同的优化仍然存在,但它们被视为“适当的”编译器优化,即在幕后,对程序员不可见。这有点令人困惑。Integer是您应该考虑的真实类。Fixnum基本上是一种性能优化,从一开始就不应该让程序员看到它。(将其与YARV中的flonum进行比较,后者完全作为VM内部的优化实现,并且从不向程序员公开。)基本

Ruby 最大整数

我需要能够确定Ruby中的系统最大整数。任何人都知道怎么做,或者是否可能? 最佳答案 FIXNUM_MAX=(2**(0.size*8-2)-1)FIXNUM_MIN=-(2**(0.size*8-2)) 关于Ruby最大整数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/535721/

ruby-on-rails - 警告:constant::Fixnum 在生成新模型时被弃用

我试图为此找到一些解决方案,但我真的找不到与运行rails命令时出现的错误相关的任何内容:railsgeneratemodelBooktitle:stringsummary:textisbn:string/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51:warning:constant::Fixnumisdeprecated/home/vmu/.rbenv/versions/2.4.0/lib/ruby/gems/2