有没有办法在Lua中使用heredoc类型的符号来引用字符串中的变量?
我想要做的基本想法如下所示。Heredoc 部分很好,但在 Lua 中,您实际上无法按照我下面显示的方式引用该变量。
username = "bigtunacan"
sql=[=[
SELECT * FROM users WHERE username='$bigtunacan';
]=]
Run Code Online (Sandbox Code Playgroud)
没有内置的字符串插值,但可以使用gsub替换表轻松实现。
sql=[=[
SELECT * FROM users WHERE username='$username';
]=]
print((sql:gsub('$(%w+)', { username = 'bigtucan' })))
-- SELECT * FROM users WHERE username='bigtucan';
Run Code Online (Sandbox Code Playgroud)
请注意一组额外的()- 这只是第一次返回 - 使用插值字符串gsub和第二个 - 进行的替换次数 - 默默地丢弃。gsub如果您在某个函数的参数列表中使用最后一个结果,其中添加一个参数可能会产生不同的行为,那么这一点可能很重要。
另外,如果你想在 SQL 上下文中使用它,你真的应该使用占位符。
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |