魔術數字
很多人在寫程式的時候會有些壞習慣,如:
1 | X = rand(3, 4) |
可能多數人看以上這段程式碼並沒有什麼特別的感覺,但是如果要維護的時候就會發現你突然不太理解這段程式碼。
有人知道這邊的 3
是什麼意思嗎?嗯…或許可以從上下文猜出來是陣列的列數的意思。
一旦要更改陣列的大小的時候勢必就要更改這些數字,甚至這些數字散落在程式碼的各個角落就會更加頭痛。
這些數字稱為魔術數字(magic numbers),因為沒有人知道他的意義是什麼!
解法一:使用常數
如果這些數字很常被使用到,而且不會在程式中被變更,請使用常數,像:
1 | const ROWS = 3 |
如此,以後要更改陣列大小只需要更改常數即可,也讓程式碼的可讀性上升。
如果你的程式會更改到這些數字,那麼就用變數。
1 | rows = 3 |
解法二:動態
如果陣列的大小不是事先知道的,或是需要動態取得,那麼可以用 size
:
1 | for i = 1:size(X, 1) |
如此可以用在未知大小的陣列上。