給出一個簡單的矩陣實現斯卡拉混淆的可變性和陣列/列表
class Matrix(val matrix: Array[Array[Double]]) {
...
def add(scalar:Double) { matrix.map(_.map(_ + scalar)) }
def set(row:Int,col:Int,value:Double) { matrix(row)(col) = value }
...
}
我的理解可變性意味着我不能重新分配矩陣,但在它我可以設置新值。如set()所示。
現在添加的實施已被打破,但我堅持如何最好地實施它。我希望使用變換
def add(scalar:Double) { matrix.transform(_.transform(_ + scalar)) }
// type mismatch; found : ...WrappedArray[Double] required: Array[Double]
但我不能讓它編譯。那麼有沒有辦法讓上面的例子工作?
並請隨時敲定任何瑕疵,我約列表/陣列的可變性邏輯:P
另外,問題是,你想達到什麼目的?不可變的代碼或可變的代碼,或者只是某種程度上正常的代碼? – coubeatczech
矩陣應該保持不變 – npiv