簡體   English   中英

有沒有辦法指定Scala函數文字的返回類型?

[英]Is there a way to specify the return type of an Scala function literal?

我想知道是否可以指定函數文字的返回類型。 比如我有

(x:Int) => x * 2 // scala infers the type Int => Int
((x:Int) => Double) => x * 2 // does NOT compile

我知道Scala會進行類型推斷以找到返回類型,但我想明確指定類型,以便編譯器更早地捕獲錯誤。

當然,我可以強制檢查

val a: Int => Int = (x: Int) => x * 2

但是可以直接在函數文字上指定嗎?

“指定類型”稱為類型歸屬 因此,如果函數文字應該是Int => Double類型(取一個Int參數並返回一個Double),那么您可以像這樣指定它:

 (x: Int) => { x * 2.0 }:Double

正如前面提到的那樣,Scala會進行類型推斷,因此不需要類型歸屬,但是如果你想“提示”關於預期類型的​​類型檢查器,你可以這樣做。 但正如文檔類型中提到的那樣,歸檔並不常用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM