2016-05-22 25 views
-2

一個元組的方法我有它返回一個元組的方法:如何實例多種類型的multipe變量從它返回斯卡拉

def someMethod(k: someType): (TypeA, TypeB) = ... 

我想調用這個方法並檢索類型A和類型B的對象。什麼是最簡單的方法來做到這一點?

這不起作用:

val (a, b): TypeA, TypeB = myObj.someMethod(someInput) 

什麼呢?

+1

爲什麼不試試看? –

回答

2

是的,你可以(你爲什麼不自己去查?)

scala> def f(): (Int, Int) = (5, 6) 
f:()(Int, Int) 
scala> val (a, b) = f() 
a: Int = 5 
b: Int = 6 

但是請注意,你不能做多重分配現有的變量。谷歌它,這個問題已被問了很多次。

順便說一句,你的元組的類型的規範是錯誤的,你必須把它包在大括號如果要明確註明型號:

scala> val (c, d): Int, String = (3, "hi") 
<console>:1: error: pattern definition may not be abstract 
     val (c, d): Int, String = (3, "hi") 
     ^

scala> val (c, d): (Int, String) = (3, "hi") 
c: Int = 3 
d: String = hi 
+0

我問(我搜索谷歌)的原因是因爲我沒有找到一個答案,返回對象的類型被指定。謝謝 – user3494047