Re: [問題] 請問 Fixnum 為什麼不支援 :next! 呢?
※ 引述《hcmlinj (接米)》之銘言:
: 請教一下各位大大
: 為什麼 Fixnum 不支援 :next! 呢?
: String 是有支援的
重點在於這個!
5.next 是會正常執行的。
看完Doc http://www.ruby-doc.org/core-2.1.2/Fixnum.html
就會發現Fixnum 沒有任何!結尾的method
因為 Fixnum 和 Bignum 是 immutable 的,而String 不是
換句話說就是物件一旦成立,物件的內容就不能夠修改。
為什麼要這樣呢?
考慮下面這個case
x = 42
y = x
x.next!
如果Fixnum 支援!這種修改內容的method 的話,最後y 的也會跟著改變,不太直覺。
: 以下是在 irb 的執行狀況
: irb(main):001:0> i = 0
: => 0
: irb(main):002:0> i.next!
: NoMethodError: undefined method `next!' for 0:Fixnum
: from (irb):2
: from /usr/bin/irb:12:in `<main>'
: irb(main):003:0> i
: => 0
: irb(main):004:0> i = "0"
: => "0"
: irb(main):005:0> i.next!
: => "1"
: irb(main):006:0> i
: => "1"
: irb(main):007:0>
: 以上,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.11.157
※ 文章網址: http://www.ptt.cc/bbs/Ruby/M.1401380837.A.C43.html
推
05/30 03:10, , 1F
05/30 03:10, 1F
→
05/30 03:11, , 2F
05/30 03:11, 2F
推
05/30 08:58, , 3F
05/30 08:58, 3F
推
06/07 09:54, , 4F
06/07 09:54, 4F
推
06/08 20:58, , 5F
06/08 20:58, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章