亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ruby的dup和clone方法有什么區別?

Ruby的dup和clone方法有什么區別?

智慧大石 2019-09-19 09:41:23
在Ruby的文檔的dup說:在一般情況下,clone并dup可能在派生類不同的語義。雖然clone用于復制對象(包括其內部狀態),但dup通常使用后代對象的類來創建新實例。但是當我做一些測試時,我發現它們實際上是相同的:class Test   attr_accessor :xendx = Test.newx.x = 7y = x.dupz = x.cloney.x => 7z.x => 7那么這兩種方法有什么區別?
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

處理ActiveRecord時也存在顯著差異:


dup 創建一個沒有設置id的新對象,這樣你就可以通過點擊將新對象保存到數據庫中 .save


category2 = category.dup

#=> #<Category id: nil, name: "Favorites"> 

clone 創建一個具有相同id的新對象,因此對該新對象所做的所有更改都將覆蓋原始記錄(如果按下) .save


category2 = category.clone

#=> #<Category id: 1, name: "Favorites">


查看完整回答
反對 回復 2019-09-19
  • 3 回答
  • 0 關注
  • 760 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號