Ruby 整数方法之间的区别

发布于 2024-07-19 14:58:06 字数 108 浏览 6 评论 0原文

有什么区别

10.6.to_i

和 和

10.6.to_int

What is the difference between

10.6.to_i

and

10.6.to_int

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

聊慰 2024-07-26 14:58:07

没有区别。 它们是同义的。

There is no difference. They are synonymous.

流星番茄 2024-07-26 14:58:07

此处对此进行了很好的解释:

首先, to_i 或 to_int 都不意味着做一些比其他更奇特的事情。 一般来说,这两种方法在实现上没有太大区别,只是在向外界宣布的内容上有所不同。 to_int 方法通常与条件表达式一起使用,应该这样理解:“这个对象在任何时候都可以被认为是一个真正的整数吗?”

to_i 方法通常用于进行实际的转换,应该这样理解:“请给我这个对象的最准确的整数表示”,

例如,String 是一个实现了 to_i 但没有实现 to_int 的类。 这是有道理的,因为字符串本身不能被视为整数。 然而,在某些情况下,它可以具有整数形式的表示。 如果我们写 x = “123”,我们可以很好地执行 x.to_i 并继续使用生成的 Fixnum 实例。 但它之所以有效,是因为 x 中的字符可以转换为数值。 如果我们写:x =“外面的马很有趣”怎么办? 没错,字符串不能始终被视为整数。

This is excelently explained here:

First of all, neither to_i or to_int is meant to do something fancier than the other. Generally, those 2 methods don’t differ in their implementation that much, they only differ in what they announce to the outside world. The to_int method is generally used with conditional expressions and should be understood the following way : “Is this object can be considered like a real integer at all time?”

The to_i method is generally used to do the actual conversion and should be understood that way : “Give me the most accurate integer representation of this object please”

String, for example, is a class that implements to_i but does not implements to_int. It makes sense because a string cannot be seen as an integer in it’s own right. However, in some occasions, it can have a representation in the integer form. If we write x = “123″, we can very well do x.to_i and continue working with the resulting Fixnum instance. But it only worked because the characters in x could be translated into a numerical value. What if we had written : x = “the horse outside is funny” ? That’s right, a string just cannot be considered like an Integer all the time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文