中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

為什么要使用符號作為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

达日县| 综艺| 宜州市| 特克斯县| 德格县| 长丰县| 新晃| 厦门市| 昌乐县| 青浦区| 钦州市| 德保县| 普陀区| 泰来县| 兴安盟| 金平| 江北区| 五常市| 杨浦区| 襄垣县| 金阳县| 淮南市| 海晏县| 湟中县| 清丰县| 石屏县| 南城县| 临潭县| 德安县| 临夏市| 台南县| 平阴县| 寻甸| 铁岭市| 浙江省| 武夷山市| 称多县| 饶河县| 集贤县| 瑞金市| 徐汇区|