Questions tagged «yarv»

2
为什么在Ruby中将Regexp对象视为“虚假”?
Ruby有“的普遍想法感实性 ”和“ falsiness ”。 Ruby 确实有两个特定于Boolean对象的类,TrueClass并且FalseClass具有分别由特殊变量true和表示的单例实例false。 但是,真实性和虚假性不仅限于这两个类的实例,该概念是通用的,适用于Ruby中的每个对象。每个对象都是真实的或虚假的。规则很简单。特别是,只有两个对象是虚假的: nil,的一个实例,NilClass以及 false,的单例实例 FalseClass 每个其他对象都是真实的。这甚至包括在其他编程语言中被认为是虚假的对象,例如 的,Integer 0 的,Float 0.0 空,String '' 空,Array [] 空,Hash {} 这些规则是语言内置的,并且不是用户定义的。没有to_bool隐式转换或类似的东西。 这是ISO Ruby语言规范的引文: 6.6布尔值 一个对象可以分为真对象或假对象。 只有false和nil是伪造的对象。false是该类的唯一实例FalseClass(请参见15.2.6),false表达式对其进行评估(请参见11.5.4.8.3)。nil是该类的唯一实例NilClass(请参见15.2.4),一个nil-expression对其进行评估(请参见11.5.4.8.2)。 除false和nil之外的其他对象均分类为真实对象。true是该类的唯一实例TrueClass(请参见15.2.5),true表达式将对其进行评估(请参见11.5.4.8.3)。 可执行的Ruby / Spec似乎同意: it "considers a non-nil and non-boolean object in expression result as true" do if mock('x') 123 else 456 end.should …
16 regex  ruby  boolean  jruby  yarv 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.