2010-04-30 113 views
36

我想做一個返回scala元組的scala函數。Scala返回類型的元組函數

我可以做這樣的功能:

def foo = (1,"hello","world") 

,這將正常工作,但現在我要告訴編譯器什麼我期望從函數返回的使用內置的類型推斷,而不是(畢竟,我不知道什麼是(1,"hello","world"))。

+1

OK,人們......我責怪編譯器不給我任何有用的信息。我忘記了=號,因此我得到了很多錯誤。 如果有人有詳細的答案,我會接受它,但正確的方法是: def foo:Tuple [Int,String,String] =(1,「hello」,「world」) – Felix 2010-04-30 10:42:22

+0

Tuple3 [.. 。] 甚至,請記住將類中的項目數放入類名(max 22ish) – Felix 2010-04-30 10:51:09

回答

62
def foo : (Int, String, String) = (1, "Hello", "World") 

編譯器將解釋型(Int, String, String)作爲Tuple3[Int, String, String]

1

另外,如果你厭倦了寫的,你可以創建一個類型別名(智力,字符串,字符串)

type HelloWorld = (Int,String,String) 
... 

def foo : HelloWorld = (1, "Hello", "World") 
/// and even this is you want to make it more OOish 
def bar : HelloWorld = HelloWorld(1, "Hello", "World")