[Update] January 9, 2023
Hello everyone!
Without further ado, we’re happy to release a beta feature for string interpolation! Please note, since this is a beta feature, it will only work in Studio.
String interpolation is the new syntax that allows you to create a string literal with expressions inside of that string literal. You can read about it in the RFC for string interpolation.
In short, it’s a safer and more ergonomic alternative over string.format
. Here’s a quick example of a string interpolation:
local combos = {2, 7, 1, 8, 5}
print(`The lock combination is {table.concat(combos)}. Again, {table.concat(combos, ", ")}.`)
--> The lock combination is 27185. Again, 2, 7, 1, 8, 5.
String interpolation also composes well with __tostring
metamethod.
local balance = setmetatable({ value = 500 }, {
__tostring = function(self)
return "$" .. tostring(self.value)
end
})
print(`You have {balance}!`)
--> You have $500!
Known Limitations
-
Script editor will not support auto-formatting string interpolations.
-
Luau currently does not define any format specifiers for string interpolations.
-
Luau currently does not support
any_function_call`with backticks without parentheses`
. -
Luau currently does not support backtick string literals as a type annotation, so
type Foo = `Foo`
is invalid.
Please post any comments or concerns you may have!
Big thanks to everyone involved!
-
@Kampfkarren, the OSS contributor that implemented the string interpolation!
-
@swmaniac and @zeuxcg for making all the improvements to the script editor!