斯卡拉新手和試圖獲得類系統的掛鉤。這裏有一個簡單的設置:正確使用斯卡拉特徵和類型
sealed trait Shape{
def sides:Int
}
final case class Square() extends Shape {
def sides() = 4
}
final case class Triangle() extends Shape {
def sides() = 3
}
現在,我想創建一個函數,它shape
類型的東西,我們知道會有一個sides()
方法來實現,並使用該方法的。
def someFunction(a: Shape)={
val aShape = a()
aShape.sides()
}
但是這擊中了錯誤的val aShape = a()
,因爲沒有類型a
。
我意識到在這個例子中,創建someFunction
是過度的,因爲可以直接從對象訪問sides()
。但我的主要問題是在someFunction
的上下文中 - 我想將一個類傳遞給一個函數,並實例化該類的一個對象,然後對該對象執行一些操作。謝謝你的幫助。
刪除'a()'的parens,它是一個值,而不是函數,方法,構造函數,.. –