// foreachループで配列を反復処理し、インデックスと値を表示する
void example_foreach() {
array numbers = ({2, 3, 5, 7, 11});
foreach (numbers; int index; int number) {
write("Index: %d, Value: %d\n", index, number);
}
}
// Array.Iteratorを使用して配列を反復処理し、インデックスと値を表示する
void example_iterator() {
array numbers = ({2, 3, 5, 7, 11});
Array.Iterator iterator = Array.Iterator(numbers);
while (iterator) {
int index = iterator->index();
int value = iterator->value();
write("Index: %d, Value: %d\n", index, value);
iterator += 1;
}
}
// Mapping.Iteratorを使用してマップを反復処理し、キーと値を表示する
void example_mapping_iterator() {
mapping data = ([ "a": 1, "b": 2, "c": 3 ]);
Mapping.Iterator iterator = Mapping.Iterator(data);
while (iterator) {
mixed index = iterator->index();
mixed value = iterator->value();
write("Index: %O, Value: %O\n", index, value);
iterator += 1;
}
}
// foreach、Array.Iterator、Mapping.Iteratorを使用して配列とマップを反復処理する
int main() {
//write("Using foreach:\n");
//example_foreach();
write("\nUsing iterator on array:\n");
example_iterator();
// write("\nUsing mapping iterator on mapping:\n");
// example_mapping_iterator();
return 0;
}
Ly8gZm9yZWFjaOODq+ODvOODl+OBp+mFjeWIl+OCkuWPjeW+qeWHpueQhuOBl+OAgeOCpOODs+ODh+ODg+OCr+OCueOBqOWApOOCkuihqOekuuOBmeOCiwp2b2lkIGV4YW1wbGVfZm9yZWFjaCgpIHsKICAgIGFycmF5IG51bWJlcnMgPSAoezIsIDMsIDUsIDcsIDExfSk7CiAgICBmb3JlYWNoIChudW1iZXJzOyBpbnQgaW5kZXg7IGludCBudW1iZXIpIHsKICAgICAgICB3cml0ZSgiSW5kZXg6ICVkLCBWYWx1ZTogJWRcbiIsIGluZGV4LCBudW1iZXIpOwogICAgfQp9CgovLyBBcnJheS5JdGVyYXRvcuOCkuS9v+eUqOOBl+OBpumFjeWIl+OCkuWPjeW+qeWHpueQhuOBl+OAgeOCpOODs+ODh+ODg+OCr+OCueOBqOWApOOCkuihqOekuuOBmeOCiwp2b2lkIGV4YW1wbGVfaXRlcmF0b3IoKSB7CiAgICBhcnJheSBudW1iZXJzID0gKHsyLCAzLCA1LCA3LCAxMX0pOwogICAgQXJyYXkuSXRlcmF0b3IgaXRlcmF0b3IgPSBBcnJheS5JdGVyYXRvcihudW1iZXJzKTsKICAgIHdoaWxlIChpdGVyYXRvcikgewogICAgICAgIGludCBpbmRleCA9IGl0ZXJhdG9yLT5pbmRleCgpOwogICAgICAgIGludCB2YWx1ZSA9IGl0ZXJhdG9yLT52YWx1ZSgpOwogICAgICAgIHdyaXRlKCJJbmRleDogJWQsIFZhbHVlOiAlZFxuIiwgaW5kZXgsIHZhbHVlKTsKICAgICAgICBpdGVyYXRvciArPSAxOwogICAgfQp9CgovLyBNYXBwaW5nLkl0ZXJhdG9y44KS5L2/55So44GX44Gm44Oe44OD44OX44KS5Y+N5b6p5Yem55CG44GX44CB44Kt44O844Go5YCk44KS6KGo56S644GZ44KLCnZvaWQgZXhhbXBsZV9tYXBwaW5nX2l0ZXJhdG9yKCkgewogICAgbWFwcGluZyBkYXRhID0gKFsgImEiOiAxLCAiYiI6IDIsICJjIjogMyBdKTsKICAgIE1hcHBpbmcuSXRlcmF0b3IgaXRlcmF0b3IgPSBNYXBwaW5nLkl0ZXJhdG9yKGRhdGEpOwogICAgd2hpbGUgKGl0ZXJhdG9yKSB7CiAgICAgICAgbWl4ZWQgaW5kZXggPSBpdGVyYXRvci0+aW5kZXgoKTsKICAgICAgICBtaXhlZCB2YWx1ZSA9IGl0ZXJhdG9yLT52YWx1ZSgpOwogICAgICAgIHdyaXRlKCJJbmRleDogJU8sIFZhbHVlOiAlT1xuIiwgaW5kZXgsIHZhbHVlKTsKICAgICAgICBpdGVyYXRvciArPSAxOwogICAgfQp9CgovLyBmb3JlYWNo44CBQXJyYXkuSXRlcmF0b3LjgIFNYXBwaW5nLkl0ZXJhdG9y44KS5L2/55So44GX44Gm6YWN5YiX44Go44Oe44OD44OX44KS5Y+N5b6p5Yem55CG44GZ44KLCmludCBtYWluKCkgewogICAgLy93cml0ZSgiVXNpbmcgZm9yZWFjaDpcbiIpOwogICAgLy9leGFtcGxlX2ZvcmVhY2goKTsKCiAgICB3cml0ZSgiXG5Vc2luZyBpdGVyYXRvciBvbiBhcnJheTpcbiIpOwogICAgZXhhbXBsZV9pdGVyYXRvcigpOwoKICAgIC8vIHdyaXRlKCJcblVzaW5nIG1hcHBpbmcgaXRlcmF0b3Igb24gbWFwcGluZzpcbiIpOwogICAgLy8gZXhhbXBsZV9tYXBwaW5nX2l0ZXJhdG9yKCk7CgogICAgcmV0dXJuIDA7Cn0=