mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 22:35:43 +08:00
c5555c6573
News can be viewed [here](https://vegorov-rbx.github.io/luau/2023/02/02/luau-string-interpolation.html) And syntax can be viewed [here](https://vegorov-rbx.github.io/luau/syntax#string-interpolation) Note that link appears to be broken in the news section. It goes to `https://vegorov-rbx.github.io/syntax#string-interpolation` instead of `https://vegorov-rbx.github.io/luau/syntax#string-interpolation` The link I use in the source is `/syntax#string-interpolation` but the root 'offset' is different on Luau website (doesn't have extra 'luau' folder) and on my GitHub pages. Hope this is ok. But if GitHub page masters know how to avoid this, please let me know. --------- Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com> Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
---
|
|
layout: single
|
|
title: "String Interpolation"
|
|
---
|
|
|
|
String interpolation is the new syntax introduced to Luau that allows you to create a string literal with expressions inside of that string literal.
|
|
|
|
In short, it's a safer and more ergonomic alternative over `string.format`.
|
|
|
|
Here's a quick example of a string interpolation:
|
|
|
|
```lua
|
|
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 the `__tostring` metamethod.
|
|
|
|
```lua
|
|
local balance = setmetatable({ value = 500 }, {
|
|
__tostring = function(self)
|
|
return "$" .. tostring(self.value)
|
|
end
|
|
})
|
|
|
|
print(`You have {balance}!`)
|
|
--> You have $500!
|
|
```
|
|
|
|
To find out more details about this feature, check out [Luau Syntax page](/syntax#string-interpolation).
|
|
|
|
This is also the first major language feature implemented in a [contribution](https://github.com/Roblox/luau/pull/614) from the open-source community. Thanks [Kampfkarren](https://github.com/Kampfkarren)!
|