<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
This code works great in Swift 2.2:<div><br /></div><div>------------</div><div><div>func foo() -> (a: String, b: Int) {</div><div> return ("asdf", 4)</div><div>}</div><div><br /></div><div>var z: (b: Int, a: String)</div><div>z = foo()</div><div><br /></div><div>print("\(z.0)") //4</div><div>print("\(z.1)") //asdf</div></div><div>------------<br /></div><div><br /></div><div>Notice how I have reordered a and b.</div><div><br /></div><div>As a result the meaning of .0 and .1 have changed.</div><div><br /></div><div>Can I, or am I likely to be able to, rely on this behavior going forward into Swift 2.3, Swift 3, Swift 4 and beyond?</div><div><br /></div><div><br /></div> </body>
</html>