Lua 字串TString資料結構即演算法分析
阿新 • • 發佈:2019-01-26
這裡主要寫Lua中的字串TString相關結構和演算法。文章中沒有貼Lua原始碼,只畫出了結構圖,和演算法的虛擬碼。這樣閱讀起來更加直觀。
一、TString的概述
1、lua中字串是常量,例s = s .. 1 建立了一個新的字串賦值給s,並不是改變了s字串中的資料。 2、lua中字串分為長字串和短字串。 長字串和短字串區別 (1)儲存方式: 短字串:全域性儲存一份 長字串:多份 (2)hash值計算時機: 短字串:建立時立刻計算 長字串:惰性計算,使用時在計算(例如字串做table的key時) 二、資料結構 1、TString結構 extra: 短字串:是否是保留字 長字串:是否計算了hash