2015-11-30 4 views
0

Я пытаюсь использовать (1,), но не работает, что такое синтаксис для определения Tuple1 в scala?Как определить Tuple1 в Scala?

scala> val a=(1,) 
<console>:1: error: illegal start of simple expression 
     val a=(1,) 
+0

Вы имеете в виду, вы хотите более удобный синтаксис, чем 'Tuple1 (1)'? – ymonad

ответ

6

Для кортежа с мощностью 2 или больше, вы можете использовать круглые скобки, однако для с мощностью 1, вам нужно использовать Tuple1:

scala> val tuple1 = Tuple1(1) 
tuple1: (Int,) = (1,) 

scala> val tuple2 = ('a', 1) 
tuple2: (Char, Int) = (a,1) 

scala> val tuple3 = ('a', 1, "name") 
tuple3: (Char, Int, java.lang.String) = (a,1,name) 

scala> tuple1._1 
res0: Int = 1 
scala> tuple2._2 
res1: Int = 1 
scala> tuple3._1 
res2: Char = a 
scala> tuple3._3 
res3: String = name 
2

Кортежа, по определению, упорядоченный список элементы. В то время как Tuple1 существует, я не видел, чтобы он использовался явно, поскольку вы обычно используете один элемент. Тем не менее, сахара нет, вам нужно использовать Tuple1(1).