從科特林文檔的目的:是什麼單位,返回函數
如果一個函數不返回任何有用的價值,它的返回類型爲單位。單位是隻有一個值的類型 - 單位。價值。該值不必顯式返回:
fun printHello(name : String?) : Unit {
if (name != null)
print("Hello, $name!")
else
print("Hi there!")
// We don't need to write 'return Unit.VALUE' or 'return', although we could
}
單元返回函數的目的是什麼? VALUE爲什麼在那裏?這是什麼VALUE?
我不是類別理論專家,但AFAIK名稱'void'和'unit'來自類別理論。 'void'是一個沒有成員的類,'unit'是有一個成員的類,'bool'是有兩個成員的類(true&false)。 void從C繼承而來,這是泛型代碼的一大麻煩。通常在Java,C#和C++中,您需要專門處理'void'情況,因爲它是一種奇怪的類型(它沒有任何價值)。 「單位」是微妙優越的,因爲它有一個值,這意味着不需要特殊情況。同樣在FP中,所有函數都需要1個參數,所以你需要一個不關心的值。 – FuleSnabel