gpt4 book ai didi

ruby-on-rails - 为什么我的字符串在使用 .to_i 而不是整数时转换为 Fixnum?

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:29 24 4
gpt4 key购买 nike

我正在运行这条线:

<%= @date[i].created_at.strftime('%d').to_i.class %>

并且输出是一个 fixnum 而不是一个 int。这是为什么?

来自 Controller :

@date = Lesson.find(:all, :order => 'created_at ASC')

最佳答案

没有这样的东西int在 ruby 中。 Fixnum是像 1 这样的小数类或 2适合机器字,它是 Integer 的子类.检查以下内容:

irb(main):004:0> 42.class
=> Fixnum
irb(main):005:0> 42.is_a? Fixnum
=> true
irb(main):006:0> 42.is_a? Integer
=> true
irb(main):007:0> 42.is_a? Numeric
=> true
irb(main):008:0> 42.is_a? Object
=> true

所以你的值是 Fixnum , 一个 Integer , 一个 Numeric和一个 Object同时 ;) 这个效果叫做 polymorphism在这种情况下,您可能会感到惊讶,因为在其他一些编程语言中,数字以特殊方式处理(它们具有某种“ native ”类型)。在 Ruby 中,数字只是对象。

关于ruby-on-rails - 为什么我的字符串在使用 .to_i 而不是整数时转换为 Fixnum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com