I’d like to modify some array, so I tried the obvious:
(Only checked for COOPER)
func testArray(){
var arr = [1,2,3]
arr[0] = 12
assert(arr[0] == 12)
}
This doesn’t compile with error: E111: Variable expected
on the line : arr[0] = 12.
Well, maybe the subscript setter for swift.Array has been forgotten, so I added an extension (an ingenious language feature by the way):
extension Array{//<T>
public subscript(_ i:Int)->T{
set{
self.setItem(i,newValue)
}
}
}
Unfortunately, this doesn’t compile (E483: Not nullable Type requires Initialization at the line:
public subscript(_ i:Int)->T{
)
So, logically, I added the getter:
extension Array{
public subscript(_ i:Int)->T{
get{
return self.getItem(i)
}
set{
self.setItem(i,newValue)
}
}
}
So my example looks like this:
extension Array{
public subscript(_ i:Int)->T{
get{
return self.getItem(i)
}
set{
self.setItem(i,newValue)
}
}
}
func testArray(){
var arr = [1,2]
arr[0] = 12
assert(arr[0] == "12")
}
This compiles, but throws a StackOverflowerror at runtime:
02-24 06:22:34.580 11031-11031/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.StackOverflowError
at org.me.b7.__Extension_Array.setItem(E:\offen\dshDev\silver 9 bugs\org.me.b7\org.me.b7\MainActivity.swift:15)
at org.me.b7.__Extension_Array.setItem(E:\offen\dshDev\silver 9 bugs\org.me.b7\org.me.b7\MainActivity.swift:15)
at org.me.b7.__Extension_Array.setItem(E:\offen\dshDev\silver 9 bugs\org.me.b7\org.me.b7\MainActivity.swift:15)
.
.
.
. at org.me.b7.__Extension_Array.setItem(E:\offen\dshD
Version info:
Microsoft Visual Studio 2015 Shell (Integrated)
Version 14.0.23107.0 D14REL
Microsoft .NET Framework
Version 4.6.00081
Installed Version: IDE Standard
RemObjects Elements 9.0.97.2071
RemObjects Elements (Oxygene, C# and Silver) for .NET, Cocoa and Java.
Copyright 2003-2016 RemObjects Software, LLC. All rights reserved.
http://www.remobjects.com/elements
RemObjects Elements leverages the LLVM compiler backend:
Copyright © 2003-2016 University of Illinois at Urbana-Champaign. All rights reserved.
http://llvm.org
RemObjects Everwood 4.7.79.695
RemObjects Everwood
Copyright RemObjects Software, LLC 2002-2016. All Rights Reserved.
http://www.remobjects.com/everwood