Iter returns a new slice of Values attached to array elements. Example: strings := []interface{}{"foo", "bar"} array := NewArray(t, strings) for index, value := range array.Iter() { value.String().IsEqual(strings[index]) }
()
| 356 | // value.String().IsEqual(strings[index]) |
| 357 | // } |
| 358 | func (a *Array) Iter() []Value { |
| 359 | opChain := a.chain.enter("Iter()") |
| 360 | defer opChain.leave() |
| 361 | |
| 362 | if opChain.failed() { |
| 363 | return []Value{} |
| 364 | } |
| 365 | |
| 366 | ret := []Value{} |
| 367 | |
| 368 | for index, element := range a.value { |
| 369 | func() { |
| 370 | valueChain := opChain.replace("Iter[%d]", index) |
| 371 | defer valueChain.leave() |
| 372 | |
| 373 | ret = append(ret, *newValue(valueChain, element)) |
| 374 | }() |
| 375 | } |
| 376 | |
| 377 | return ret |
| 378 | } |
| 379 | |
| 380 | // Every runs the passed function on all the elements in the array. |
| 381 | // |