對我來說,我看到2種方式來做到這一點。我會通過排序最好在我的角度來看
基於類的方法
這裏,方法是封裝你的需要,在一個專門的對象
優點:
- 它的封裝
- 你可以提出幾種方法訪問變量,依賴的需要
- 您可以擴展功能,而無需打破一切
- 我喜歡它:P
缺點
- 更多的時間花費創造類等。
- 你真的需要我說的專業人士嗎?
- 也許怪異JS人
例如:
class Vector {
int x;
int y;
static final String X = "x";
static final String Y = "y";
Vector({this.x, this.y});
Vector.fromList(List<int> listOfCoor) {
this.x = listOfCoor[0];
this.y = listOfCoor[1];
}
// Here i use String, but you can use [int] an redefine static final member
int operator[](String coor) {
if (coor == "x") {
return this.x;
} else if (coor == "y") {
return this.y;
} else {
// Need to be change by a more adapt exception :)
throw new Exception("Wrong coor");
}
}
}
void main() {
Vector v = new Vector(x: 5, y: 42);
Vector v2 = new Vector.fromList([12, 24]);
print(v.x); // print 5
print(v["y"]); // print 42
print(v2.x); // print 12
print(v2[Vector.Y]); // print 24
}
枚舉爲基礎的方法:
您也可以定義的 「枚舉」(實際上沒有真正落實但將在未來的版本),將包含您的價值「快捷方式」
優點
缺點
例如:
class Vector {
static final int x = 0;
static final int y = 1;
}
void main() {
List<int> myVector = new List(2);
myVector[Vector.x] = 5;
myVector[Vector.y] = 42;
}
作出你的選擇,P
我不會因爲在JavaScript中使用對象而煩惱。如果代碼對性能至關重要,它將被優化,並且只要您保持到達那裏的所有元素的結構相同,它就應該與列表一樣高效。關鍵是保持物業訪問「單形」 - 即只有相同結構的對象達到這一點。 – lrn