簡體   English   中英

數字中的.size對紅寶石意味着什么?

[英]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]

我總是建議使用以下方案檢查您不確定的方法:

  1. 檢查方法的來源(使用Object# method ):

     number.method(:size) #=> #<Method: Fixnum#size> 
  2. 打開文檔並了解它對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的機器表示中的字節數。

14Fixnum類的一個對象,所以當你調用它的size時,你得到的數字的機器表示中的字節數。

如果您想知道數字中有多少位數,您可以先將其轉換為字符串然后調用size

14.to_s
# => "14"
14.to_s.size
#=> 2
12345.to_s.size
#=> 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM