在编写程序时,作为一个业余程序员,我的理解是,有三种方法可以完成大部分事情:
- 创建循环
- 创建和使用函数
- 创建和使用对象
我在这里使用 javascript 来问我的问题,因为我大约在 2-3 周前开始学习它。与我在大学的 python 或 MatLab 中使用的相比,这有点奇怪,但这不是重点。我经常认为在三个特定应用程序中什么应该是好的选择,所以我想知道你的建议。
我想创建一个数组列表以供随后用于绘图。该程序应该采用方程的系数、增量步长和 x 值的边界。下面是代码(如果我在更改为适合 SO 时遗漏了以下内容,很抱歉,但它在不久之前就可以工作了!):
function array_creator(input_coeff,inc, boundary){
var bound=boundary||[0,1];
var eqn_deg=input_coeff.length-1;
var increment=inc;
var x_init=bound[0];
var y_val=0;
var graph_array=[];
while (x_init<=bound[1]){
for(var i=0;i<input_coeff.length;i++){
y_val=y_val+input_coeff[i]*Math.pow(x_init,eqn_deg);
eqn_deg--;
}
new_arr=[x_init,y_val];
eqn_deg=input_coeff.length-1;
y_val=0;
graph_array.push(new_arr);
x_init=x_init+increment;
}
return graph_array;
}
在上面的代码中,我有一个嵌套循环,它在 while 内部,但我习惯于编写嵌套深度超过 3-4 的代码,一周后我无法挖掘自己的程序。所以我的问题是,我什么时候应该知道是时候实现单独的函数而不是嵌套或知道创建对象的时间了。将一个大循环功能分解为多个功能在清晰度和效率方面的得失是什么?在什么时候创建对象变得至关重要,或者只是当我不得不再次重用相同的代码时。
当你唯一的工具是锤子时,一切看起来都像钉子。当我在 MatLab 之后开始学习 python 时,OO 方法给我留下了深刻的印象,以至于我过去常常在各种情况下创建类,无论是否需要。我认为许多 SO 新手会很高兴在这个编程基础上找到一些系统的方法。