Merge two lists together using :~: operator.
← Operators and Expressions · Ref: Q1081
Merge one list into another with :~::
team :~: newHires
All elements from the source are added to the end of the target. The source is unchanged.
See Q1058 for copy vs merge vs replace.
Example
defines module qa.operators.mergecollection defines program MergeCollectionDemo() stdout <- Stdout() //Two separate lists of names team <- ["Alice", "Bob", "Charlie"] newHires <- ["Diana", "Eve"] stdout.println(`Team: ${team}`) stdout.println(`New hires: ${newHires}`) //Merge new hires into the team list team :~: newHires stdout.println(`After merge: ${team}`) //Merge a single element team :~: "Frank" stdout.println(`After single merge: ${team}`)
Common mistakes
E50060 — EK9's List has no addAll method — use the merge operator ':~:' to add all elements of one list into another. See ek9 -h E50060 for details.
Incorrect:
team.addAll(newHires)
Correct:
team :~: newHires
Other ways to ask this
- Add all elements from one list into another list
- Combine two lists in place using :~:
- In Java I'd use addAll(). What is the EK9 equivalent?
- I have two lists and need to merge the second into the first
Coming from another language?
Java: list.addAll(other). Python: list.extend(other). Go: append(slice, other...). EK9: list :~: otherList or list += otherList.
Keywords: addAll, collection, append, merge, list, combine, :~: