summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2024-03-17 14:38:36 +0100
committerA Thousand Ships <96648715+AThousandShips@users.noreply.github.com>2024-03-17 15:02:12 +0100
commit8a78e7e174e4e1dc42fcefc6b01f9d9e3fbfb356 (patch)
treee533502831a5be365e1fa58eb1e8d7daf4ed1044 /doc
parentfe01776f05b1787b28b4a270d53037a3c25f4ca2 (diff)
downloadredot-engine-8a78e7e174e4e1dc42fcefc6b01f9d9e3fbfb356.tar.gz
[Doc] Clarify behavior of `String.format` with keys in replacements
Diffstat (limited to 'doc')
-rw-r--r--doc/classes/String.xml7
1 files changed, 7 insertions, 0 deletions
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 17f953f48f..7fdd271d80 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -239,6 +239,13 @@
print("User {id} is {name}.".format([["id", 42], ["name", "Godot"]]))
[/codeblock]
See also the [url=$DOCS_URL/tutorials/scripting/gdscript/gdscript_format_string.html]GDScript format string[/url] tutorial.
+ [b]Note:[/b] The replacement of placeholders is not done all at once, instead each placeholder is replaced in the order they are passed, this means that if one of the replacement strings contains a key it will also be replaced. This can be very powerful, but can also cause unexpected results if you are not careful. If you do not need to perform replacement in the replacement strings, make sure your replacements do not contain placeholders to ensure reliable results.
+ [codeblock]
+ print("{0} {1}".format(["{1}", "x"])) # Prints "x x".
+ print("{0} {1}".format(["x", "{0}"])) # Prints "x {0}".
+ print("{foo} {bar}".format({"foo": "{bar}", "bar": "baz"})) # Prints "baz baz".
+ print("{foo} {bar}".format({"bar": "baz", "foo": "{bar}"})) # Prints "{bar} baz".
+ [/codeblock]
[b]Note:[/b] In C#, it's recommended to [url=https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated]interpolate strings with "$"[/url], instead.
</description>
</method>