亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

為什么要使用符號作為hash的鍵

發布時間:2020-08-03 16:19:12 來源:網絡 閱讀:479 作者:王國超1 欄目:編程語言

使用符號在比較時即節省時間又節省內存,因為符號僅僅存儲一次

 

ruby的符號是一種不可改變的字符串,同一個符號在代碼中多次引用時,是指向同一個對象,擁有相同的object id

 

而字符串是可變的,代碼中的相同的內容有時卻要分別存儲,擁有不同的object id

 

用字符串作為hash的鍵,ruby要計算該字符串的hash值,并將其與hash中的其他鍵的hash進行比較

 而用符號作為hash的鍵,因為符號的不可改變性,ruby僅僅比較該符號的object id是否與hash中的其他鍵的object id是否相同

 

當然使用符號也有缺點,ruby會將符號存儲在一個符號表中,知道進程結束才會釋放,在運行過程中是不會被gc回收的。當符號躲到一定程度就會造成內存的溢出,當然這只是理論情況下,誰又會床在足夠多的符號呢

 

在做字符串比較時,ruby只會比較符號的object id,不會去計算,這會比比較字符串快很多,因為計算時,ruby會調用hash函數計算鍵的hash值,然后用他與其他的進行比較

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平湖市| 洞头县| 旬阳县| 昌宁县| 承德县| 金溪县| 德化县| 东光县| 桓仁| 江北区| 安宁市| 岑溪市| 五寨县| 彭山县| 体育| 南漳县| 紫阳县| 鄂伦春自治旗| 天祝| 长沙市| 安西县| 沿河| 青海省| 天津市| 巴林右旗| 遂昌县| 滨海县| 北安市| 建瓯市| 双鸭山市| 集贤县| 阳谷县| 高邮市| 新余市| 宣化县| 乐至县| 扎囊县| 沂水县| 岳普湖县| 涪陵区| 沽源县|