string_foreach

此函数对给定字符串的所有字符执行回调函数。

该函数可选地接受起始位置和长度,用于定义要迭代的字符范围和迭代方向(从左到右或从右到左)。

回调函数将为字符串中的每个字符接收两个参数:字符本身及其在字符串中的位置。

重要信息GameMaker 中,字符串位置从 1 开始 (表示它们 从一开始 ),而 GameMaker 中的其他数据类型都是 从零开始 ( 从 0 开始)。因此,字符串中第一个字符的位置为 1,第二个字符的位置为 2,依此类推。最后一个字符是 string_length(string)

 

语法:

string_foreach(string, function, [pos], [length]);

参数类型描述
stringString要重复的字符串
functionFunction要为范围中的每个字符执行的函数,参数为 characterposition
posReal可选 起始位置 (字符串的默认位置为 1)。负值从字符串的末尾开始计数 (例如,-1 是最后一个字符的位置,-2 是最后一个字符之前的位置,依此类推)。0 被视为与 1 相同。
lengthReal可选 要重复的字符数和重复方向(从左到右(正值)或从右到左(负值))。

 

返回:

N/A

 

示例1:

function debug_character(character, position)
{
    show_debug_message(character);
}

string_foreach("test", debug_character);

上面的代码首先定义了一个函数 debug_character,该函数使用 show_debug_message 将字符打印到日志。然后,它对字符串 "test" 调用函数 string_foreach,以对其所有字符执行 debug_character 函数。

 

示例2:

function debug_extended(character, position)
{
    show_debug_message("{0}: {1}", position, character);
}

string_foreach("1234567890", debug_extended, -1, -infinity);

上面的代码首先定义了一个函数 debug_extended,该函数显示包含位置和字符的调试消息。然后,使用字符串 "1234567890" 上的 debug_extended 函数调用 string_foreach。因为偏移量是 -1,所以函数将在其上执行的第一个字符是最后一个字符 ("0")。由于长度为负数 ("0"、"9"、"8"、"7"、"6"、……、"1"),字符按降序遍历。