string

此函数用于从各种数据类型创建新字符串。

当只向函数提供一个参数时,该参数被视为一个值,该值将从其原始数据类型转换为字符串。当给定多个参数时,第一个参数被视为格式字符串,其后的参数被视为要插入到格式字符串中的值。

从非字符串类型转换

Real 类型为整数的值在字符串中不会有小数位。具有小数部分的 Real 类型的值在字符串中有两个小数位。如果在输出字符串中需要更多的小数位,可以使用函数 string_format

StructInstance 类型的值将使用该结构或实例的 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_formatAny (if value) or String (if format)要转换为字符串的值。
[, value1, value2, ...]Any可选 要插入占位符位置的值。

 

返回:

String

 

示例1:

draw_text(100, 100, "Score: " + string(score) + " / Health: " + string(health));

上面的代码使用 string 函数将实数和字符串绘制在一起,因为 draw_text() 将只接受 一个字符串一个实数 ,而不是两者都接受,所以我们将非字符串转换为字符串。

 

示例2:

draw_text(100, 100, string("Score: {0} / Health: {1}", score, health));

在此代码中,string函数的使用方式与示例1中的使用方式略有不同。这里使用格式字符串作为第一个参数来调用该函数,其中"{0}"替换为score,而"{1}"替换为health