So for people who have read my blog or who know me, they would probably know that I am a Java developer in my day job(full-time contract) and coding Swift is something that I do in my spare time. So there is one thing that I do every now and again in Java and that is something like this
public void modifyCollection(List<String> collection) {
collection.add("one");
collection.add("two");
collection.add("three");
}
and the method is invoked as follows
List<String> testCollection = new ArrayList<String>();
modifyCollection(testCollection);
So after the line modifyCollection(testCollection); the testCollection will have strings one, two and three. Now let us trying something similar in Swift
func modifyCollection(collection:[String]) {
collection.append("one")
collection.append("two")
collection.append("three")
}
var strArray:[String] = [String]()
modifyCollection(strArray)
You will get an error i.e. Immutable value of type [String] only has mutating members named append.
Problem
Solution
func modifyCollection(inout collection:[String]) {
collection.append("one")
collection.append("two")
collection.append("three")
}
var strArray:[String] = [String]()
modifyCollection(&strArray)
[appbox steam ]
0 Comments