ios - Initialising an array of two tuples fails -
i have simple function returns array of tuples
func findnodeneighbors(node: node) -> [(node: node, distance: double)] { var neighbors = [(node: node, distance: double)]() var nodelinks = linkswith(node) link in nodelinks { neighbors.append((node: link.othernodelinkedwith(node), distance: link.length)) } return neighbors }
but turns out error invalid use of () call clue of non-function type
on first line of function body.
if instead declare type neighbors
explicitly, fine.
var neighbors: [(node: node, distance: double)] = []
how come?
i've read preferred declare arrays initialising them , allowing implicit type inference.
pretty bug in swift's parser, [type]
sugar in combination named tuples.
var neighbors = array<(node: node, distance: double)>()
(which should identical [(node: node, distance: double)]()
) works fine.
edit: looks dictionary equivalent has same problem
works fine:
var d = dictionary<int,(x: int, y: int)>()
busted:
var d = [int:(x: int, y: int)]()
Comments
Post a Comment