[英]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.