Q
字符串引用
3
A
回答
3
如果字符串拘禁或實際上不是不是問題 - 字符串實習只是爲了加快字符串比較的機制和(可能)騰出一些記憶需要創建一個字符串的CPU的開銷。
重要的是,lua中的字符串通常被稱爲reference types
。這就是說,運行時值只保存並共享對字符串的引用,並將字符串賦值給運行時值僅僅是複製一個指針併爲此值設置適當的標記。
你的代碼的另一件事是它允許你在執行你的函數時避免多次哈希查找。例如,
local a = tbl['mykey']
-- ...
local other_a = tbl['mykey']
將導致兩個哈希查找,而
local cached_a = tbl['mykey']
-- ...
local a = cached_a
-- ...
local other_a = cached_a
將其降低到一個查找。但是,對於整數鍵通常這不是什麼大問題。但有時甚至整數鍵都會觸發哈希查找,即使它們很小。另外,它依賴於實現。 Lua很簡單。
相關問題
- 1. 使用字符串索引
- 2. Jquery引用字符串
- 3. Tokenize引用的字符串
- 4. xml引用字符串
- 5. 通過字符串引用
- 6. 引用字符串數組
- 7. Python字符串引用
- 8. 比較字符串引用
- 9. C字符串引用voodoo
- 10. 索引字符串?
- 11. 字符串索引
- 12. 索引字符串
- 13. 通過引用調用一個雙字符串的字符串
- 14. C#字符串/字符串:像Java中的比較字符串(通過引用)
- 15. 引用字符串中的符號(java)
- 16. 提取單引號字符串和雙引號字符串
- 17. 將單引號字符串轉換爲雙引號字符串
- 18. 轉換單引號字符串中雙引號字符串
- 19. 字符串字面引用類
- 20. 在Go中引用字符串文字
- 21. 如何打印出字符串索引字符串中字符串的字符
- 22. AWK得到的字符串和引用字符串
- 23. 將字符串傳遞到字符串數組引用
- 24. 按引用傳遞一個字符串,並操作字符串
- 25. ctypes通過引用傳遞字符串:字符串未更新
- 26. 在字符串中添加字符串的PHP引用
- 27. Ruby將字符串插值應用於單引號字符串
- 28. 從引用字符串中替換字符串的一部分
- 29. C++ - 用雙引號將字符串替換爲帶雙引號的字符串
- 30. 匹配所有引用的字符串,但在字符串之前過濾引號字符串
AFAIR PUC-Rio lua-5.3不再實習短串。此外,Lua 5.3和LuaJIT是兩個完全不同的東西。 – iehrlich
此外,你試圖達到什麼目前還不清楚。說真的,你可能會更清楚一點,也許有一些額外的代碼,以及你期望它做什麼? – iehrlich
@iehrlich對不起,我希望這段代碼在運行時不會很貴,但是我的問題是它是否會將字符串複製到我的本地值中。我希望它會直接指向字符串。我還想過(通過電子郵件)向Lua團隊問這個問題,但我懷疑我會得到快速答案。 – Hydro