- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
3, "y" => 2} puts value.class puts value.is_a?(Hash)-6ren">
为什么 is_a?
为 Hash
类返回 false
?
示例:
value = {"x" => 3, "y" => 2}
puts value.class
puts value.is_a?(Hash)
输出:
Hash
false
我正在使用 Ruby 1.9.2
已更新:我的类(class)的完整来源:
class LatLng
include Mongoid::Fields::Serializable
attr_reader :lat, :lng
def serialize(value)
return if value.nil?
puts value.class
puts value.is_a?(Hash)
if value.is_a?(self.class)
puts "is geopoint" + value.to_json
{'lng' => value.lng.to_f, 'lat' => value.lat.to_f}
elsif value.is_a?(Hash)
hash = value.with_indifferent_access
puts "is hash" + value.to_json
{'lng' => hash['lng'].to_f, 'lat' => hash['lat'].to_f}
end
end
def deserialize(value)
return if value.nil?
value.is_a?(self.class) ? value : LatLng.new(value['lat'], value['lng'])
end
def initialize(lat, lng)
@lat, @lng = lat.to_f, lng.to_f
end
def [](arg)
case arg
when "lat"
@lat
when "lng"
@lng
end
end
def to_a
[lng, lat]
end
def ==(other)
other.is_a?(self.class) && other.lat == lat && other.lng == lng
end
end
最佳答案
#irb
ruby-1.9.3-p0 :001 > value = {"x" => 3, "y" => 2}
=> {"x"=>3, "y"=>2}
ruby-1.9.3-p0 :002 > value.is_a?(Hash)
=> true
尝试禁用您加载的任何 gem/扩展,并尝试使用干净的 ruby
更新:
尝试 value.is_a?(::Hash)
PS:尝试阅读关于 Duck Typing 的内容在 ruby 中。也许你应该调用 value.respond_to?(:key)
而不是 value.is_a?(Hash)
关于ruby - 为什么是_a?哈希类返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8590252/
我在 Ubuntu 12.04 上使用 OCaml,我正在尝试使用 make 函数来编译它,但它并不完全有效。 当前试图编译程序 EVA2H1 但它返回 ocamlc -w A -g -c error
在TypeScript中,我这样做: const right = (a: T) => (b: U) => b; const log = (msg: unknown) => right (c
我是 iOS 新手,所以慢慢来。当我在我的 .h View Controller 中声明一个名为“_a”的对象并声明一个属性“a”时,当我在 .m 文件中进行合成时 @synthesize a=_a;
我正在使用Angular 8、tslint 5.15 和 typescript v3 我正在使用以下代码将文件读取为 ArryaBuffer const reader = new FileReader
我正在查看用于电子邮件验证的 Struts 2 RegEx,但不清楚其中的一个子集。 https://struts.apache.org/docs/email-validator.html 中所述的正
末A Personal View of APL (就在引用文献之前),Ken Iverson 给出了以下一系列 J 代码片段: [a=. b=. i. 5 0 1 2 3 4 a +/ b 0
我有以下代码读取RGB JPEG图像,但是,该图像有时具有NaN值,因此我想将其修补为0: cv::Mat model = cv::imread(path); cv::patchNaNs(model,
例如: table_a table_a |key|Value| |---|-----| | 2 |john | |---|-----| | 3 |james| ----------- 和table_b
考虑以下 x64 Intel 程序集中的变量引用,其中变量 a在 .data 中声明部分: mov eax, dword ptr [rip + _a] 我很难理解这个变量引用是如何工作的。自 a是变量
当我将 Formik 中的 handleChange 添加到“semantic-ui-calendar-react”DateInput 组件时,在选择日期时出现以下错误。 /image/l56hP.j
我是一名优秀的程序员,十分优秀!