digitalmars.D - Small article about Scala, tuples
- bearophile (51/51) Jun 12 2011 A small intro to basic Scala programming, it shows nothing of the advanc...
A small intro to basic Scala programming, it shows nothing of the advanced Scala features. It seems Scala too use Python-style tuples: http://www.artima.com/weblogs/viewpost.jsp?thread=328540 I've created a small test of Scala tuples: http://ideone.com/9wrJc object Main { def main(args: Array[String]) { val t2 = (1, 2) println(t2) // (1,2) // It's just syntax sugar for: val t2b = new Tuple2(1, 2) println(t2 == t2b) // true val t3 = (1, 2, 3) println(t3) // (1,2,3) // unpacking syntax: val (x, _) = t2 println(x) // 1 // alternative tuple literal syntax: val t2c = 1 -> 2 println(t2 == t2c) // true // the alternative tuple syntax allows to // define maps as not built-ins: val d = Map(1->2, 3->4) println(d) // Map(1 -> 2, 3 -> 4) // The single item "tuple" seems to not have literal sugar: val t1 = Tuple1(1) println(t1) // (1) //val t1b = (1,) // syntax error val t1c = (1) val i = 1 println(t1c == 1) // true } } Output: (1,2) true (1,2,3) 1 true Map(1 -> 2, 3 -> 4) (1) true The tuple literals when printed don't show the types of the single items, I think it's better for D tuples to do the same, despite the little loss of precision, because they become more readable. In D tuples are useful in other situations too: forach ((a, b); zip([1,2,3], "abc")) {... auto t2 = tuple(1, 100); switch (t2) { case tuple(1, _): default: } Bye, bearophile
Jun 12 2011