为什么我的红宝石给出的数字大小不正确?这个数字并不重要。对于大小,输出始终为4。那是什么意思?我一直以为它应该给出数字位数。
number = 14
print number
print "\n"
print number.size
输出:
14
4
ruby版
ruby 2.1.8p440 (2015-12-16 revision 53160) [i386-mingw32]
答案 0 :(得分:7)
我总是建议检查您不确定使用以下方案的方法:
检查方法的来源(使用Object#method
):
<html>
<head>
<style>
html {
background: #F7F7F7;
color: red;
}
li {
animation: fadein 2s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
</style>
</head>
<body>
<script>
var app = Elm.Main.fullscreen()
</script>
</body>
</html>
打开文档并了解它对number.method(:size)
#=> #<Method: Fixnum#size>
及其工作原理的作用。
2.1如果您正在使用IRB,则可以运行Fixnum#size
以在控制台中获取文档
2.2如果你正在使用撬,你可以使用help 'Fixnum#size'
(首先安装show-doc Fixnum#size
gem)
在Ruby 2.1.8中,方法在Fixnum#size
中定义。
从Ruby 2.4开始,它定义于
Integer#size
:
返回int。
的机器表示中的字节数
答案 1 :(得分:3)
你混淆了两种方法String#size
:
返回
str
的字符长度。
返回
fix
的机器表示中的字节数。
14
是类Fixnum
的对象,因此当您在其上调用size
时,您将获得该数字的机器表示中的字节数。
如果您想知道数字中有多少位数,您可以先将其转换为字符串,然后在其上调用size
:
14.to_s
# => "14"
14.to_s.size
#=> 2
12345.to_s.size
#=> 5