swift - Ranges in Swift3 -
i'm struggling 1 of swift3 changes. earlier treated ... , ..< range, have ton of new "sub-ranges". have function taking both range variants.  
struct test {   var data = [1,2,3,4,5]   subscript(r:range<int>) -> [int] {     return array(data[r])   } } let t = test() print(t[0...1]) // fails because closedrange print(t[0..<2])   i'd have
  subscript(r:takesanyrange<int>) -> [int] {      
you can avoid duplication instead using countablerange , countableclosedrange, since 1 convertible other:
struct test {   var data = [1,2,3,4,5]    subscript(r: countablerange<int>) -> [int] {     return array(data[r])   }    subscript(r: countableclosedrange<int>) -> [int] {     return self[countablerange(r)]   } }   this works fine int range, specified in question. apple documentation: 
you can create countable range on type conforms strideable protocol , uses integer associated stride type. default, swift’s integer , pointer types usable bounds of countable range.
Comments
Post a Comment