不可變型別與可變型別
在程式設計中,型別是指變數所屬的類別或資料結構。根據修改方式,這些類型可以分為不可變類型和可變類型。
不可變類型
不可變類型不允許在分配後修改其內容。相反,它們用包含更新資料的新物件替換自己。 Float 是不可變類型的範例。例如,建立名為 RoundFloat 的新 float 子類別(如提供的程式碼所示)不會變更類型的不變性。這是因為 new 方法負責建立物件的新實例,並且不會修改現有物件。
可變型別
可變另一方面,型別可以修改其記憶體中的內容。這允許原始引用指向更新後的物件。在提供的範例中,SortedKeyDict_a 是可變類型,因為它包含對物件進行操作的方法,例如 example()。這些方法可以改變物件的狀態,而不需要建立新的物件。
可操作性
對於 SortedKeyDict 和 RoundFloat 進行的測試,區別在於它們的行為給定的設定值。 SortedKeyDict 是可變的,允許在不明確呼叫 example() 方法的情況下進行修改。它在內部對鍵進行排序並傳回一個字典。然而,RoundFloat 不支持這種行為,因為它是不可變的。因此,嘗試將整數傳遞給 RoundFloat 而不呼叫 new 會標記錯誤。
以上是不可變類型與可變類型:它們的可操作性有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!