以下產生一個奇怪的結果切片! (除非我犯了一個錯誤)。String.slice!產生奇怪的結果
紅寶石2.2.5p319(2016年4月26日修訂版54774)[x86_64的Linux的] IRB會話
irb(main):001:0> a= File.read(',a');nil
=> nil
irb(main):002:0> a.class.name
=> "String"
irb(main):003:0> a.size
=> 66173
irb(main):004:0> b=a.slice(0..65534);nil
=> nil
irb(main):005:0> b.size
=> 65535
irb(main):006:0> a.slice!(0..65534);nil
=> nil
irb(main):007:0> a.size
=> 638
irb(main):008:0>
其中file 「a」 是長度的文本串66173個字符。
字符串需要被修整,以適合類型的一個MySQL柱:文本,其具有65535個字符的最大大小,
如果變量一個切片到一個新的字符串變量b它導致在一個正確的切片。
如果變量一個到位切片,似乎做導致長度奇怪的事情。爲什麼?
有人可以解釋發生了什麼?
仔細閱讀定義會有幫助。謝謝。 – Ross