Lua如何创建可用于变量跟进的自定义函数

Lee*_* Yi 3 lua function

继续我之前的问题(链接在这里:Lua如何创建可用于变量的自定义函数?),有没有办法创建相同类型的函数,除了表之外的其他东西?例如,

str = "stuff"
letter = str:foo() --Maybe have the foo function extract the first letter?
Run Code Online (Sandbox Code Playgroud)

有没有办法创建一个以相同的方式工作的函数

lowerCasestr = str:lower()
Run Code Online (Sandbox Code Playgroud)

作品?

Yu *_*Hao 6

所有字符串共享相同的元表,将自定义函数添加到其__index表中:

function first_letter(str)
  return str:sub(1, 1)
end

local mt = getmetatable("")
mt.__index["first_letter"] = first_letter

local str = "stuff"
print(str:first_letter())
Run Code Online (Sandbox Code Playgroud)