此函数用于从各种数据类型创建新字符串。
当只向函数提供一个参数时,该参数被视为一个值,该值将从其原始数据类型转换为字符串。当给定多个参数时,第一个参数被视为格式字符串,其后的参数被视为要插入到格式字符串中的值。
Real 类型为整数的值在字符串中不会有小数位。具有小数部分的 Real 类型的值在字符串中有两个小数位。如果在输出字符串中需要更多的小数位,可以使用函数 string_format。
Struct 或 Instance 类型的值将使用该结构或实例的 toString() 方法 ( 如果存在) 转换为字符串,或者隐式转换为字符串。
Handle 类型的值将转换为显示句柄信息的字符串:"ref <type> <id>"。
Array 类型的值将转换为 [element1, element2, element3, element4, element5] 格式的字符串,即数组中所有元素的串联。如果数组中的任何元素是结构体或实例,则将调用其 将其转换为字符串。
当您向string函数传递多个参数时,第一个参数将被视为格式字符串。在格式字符串中,您可以使用 "{0}"、"{1}"、"{2}" 等形式的占位符。
这些占位符将替换为它们所引用位置上的参数,即 "{0}" 将替换为第二个参数,"{1}" 将替换为第三个参数,"{2}" 将替换为第四个参数,依此类推。
string_variable = string("This is a string with two placeholders that will be replaced. They are {0} and {1}.", "this", "that");
// Results in:
// "This is a string with two placeholders that will be replaced. They are this and that."
如果只将单个参数传递给函数,则此参数不会被视为格式字符串。如果在本例中添加类型为 "{0}" 的占位符,则它们将作为普通文本输出,因为没有值可以替换为:
string_variable = string("This is a string with two placeholders that won't be replaced. They are {0} and {1}.");
// Results in:
// "This is a string with two placeholders that won't be replaced. They are {0} and {1}."
注意 还可以使用模板字符串将变量和表达式插入字符串中。
string(value_or_format [, value1, value2, ...]);
参数 | 类型 | 描述 |
---|---|---|
value_or_format | Any (if value) or String (if format) | 要转换为字符串的值。 |
[, value1, value2, ...] | Any | 可选 要插入占位符位置的值。 |
draw_text(100, 100, "Score: " + string(score) + " / Health: " + string(health));
上面的代码使用 string 函数将实数和字符串绘制在一起,因为 draw_text() 将只接受 一个字符串 或 一个实数 ,而不是两者都接受,所以我们将非字符串转换为字符串。
draw_text(100, 100, string("Score: {0} / Health: {1}", score, health));
在此代码中,string函数的使用方式与示例1中的使用方式略有不同。这里使用格式字符串作为第一个参数来调用该函数,其中"{0}"替换为score,而"{1}"替换为health。