[英]What does the .size on number mean in ruby?
為什么我的紅寶石給出的數字大小不正確? 數字是什么並不重要。 對於大小,輸出始終為4。 這意味着什么? 我一直以為它應該給出位數。
number = 14
print number
print "\n"
print number.size
輸出:
14
4
紅寶石版
ruby 2.1.8p440 (2015-12-16 revision 53160) [i386-mingw32]
我總是建議使用以下方案檢查您不確定的方法:
檢查方法的來源(使用Object# method
):
number.method(:size) #=> #<Method: Fixnum#size>
打開文檔並了解它對Fixnum#size
以及它的工作原理。
2.1如果您正在使用IRB,您可以運行help 'Fixnum#size'
以在您的控制台中獲取文檔2.2如果您使用pry,您可以使用show-doc Fixnum#size
(首先安裝pry-doc
gem) )
在Ruby 2.1.8中,方法是在Fixnum# size
定義的。
從Ruby 2.4開始,它以Integer# size
定義:
返回int的機器表示中的字節數。
你混淆了String#size
這兩個方法:
返回
str
的字符長度。
和Fixnum#size
:
返回
fix
的機器表示中的字節數。
14
是Fixnum
類的一個對象,所以當你調用它的size
時,你得到的數字的機器表示中的字節數。
如果您想知道數字中有多少位數,您可以先將其轉換為字符串然后調用size
:
14.to_s
# => "14"
14.to_s.size
#=> 2
12345.to_s.size
#=> 5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.