2016-10-22 145 views

回答

3

是的,你大部分是正確的。

子類型是兩個類型的關係。它本身並沒有說明這種關係如何實際應用於表達式的輸入。

包含通常意味着存在表達式的鍵入規則,允許隱式應用子類型到它們的類型。有些子類型的語言沒有包含規則,必須使用特殊的類型註釋(例如OCaml)顯式調用。

子類型是否是「強制性」也有些獨立的方面。強制分類改變其應用的價值。例如,在浮點語言中,子類型可能是強制性的,因爲整數和浮點數是不同的域。對象的典型OO風格分類通常不具有強制性。然而,這是一個有些模糊的概念,因爲它通常取決於語義模型的選擇,並且可能不一定會產生可觀察到的差異(除非語言允許使用向下轉換來反轉subtying)。實際上,它指的是實現技術而不是語義。

相關問題