问题
这个其实大家都知道,我也知道,问题是我有时候就在这个地方跌倒。调用函数最必须注意的是就是argument的数量和类型,传址或是传值。
函数argument的数量,类型与你的提供的不一致,99%都是问题的。
这个我知道,昨天我写程序的时候又碰到了类似的问题,出错提示:segment dumps。这个错误其实我的变量有问题。
可是我一直没有想通为什么那个变量有什么问题。知道今天早上,我恍然大悟,还是出在调用函数上。
这个问题很简单,我使用的是我老板的函数库,当前位置,这个变量处于数据流的末端,我将这个变量给了一个函数,然后返回这个变量。
但是我需要原先没有处理的数据,进行下一步的操作。所以我想当然地将返回值给了一个新的变量,问题来了。
==================================================
解决方案
程序就像流水线,数据就像产品。
我把流程的数据给了一个函数(相当于半成品给一个加工车间),并处理。那么得到的仍然是原先的东西,只不加工了下。这不符合我的要求,我的是一个没有处理的,和一个处理过的。
这个问题有很多种解决的办法
1. 给函数之前,复制这个数据给一个新的变量。
这也要看具体情况,我的变量拥有一个复杂的数据结构,导致失败,也许我没有看懂这个类相应的操作符。
2. 修改函数
在函数里,新建一个变量,将处理好的结果给它。原先的数据就不会被修改。返回这个新建的变量,即可。
我采用了第二种方法,也许还有其他的方法,我不知道而已。
====================================================
感想
虽说,我早先就明白,程序就像工厂,函数就像车间,数据就像原材料,我们要的是产品。
可是问题往往会这么多,几乎不可能一次编译就通过。
总会出现类似思路的问题,函数问题,衔接问题,类型匹配问题等等。就像原材料被加工成一个劣质品甚至加工的中途就不知所踪。
所以,只有多想,多实践才是王道。就像一个道理,大家都明白,不一定所有的人悟到它的真谛。
阅读(2480) | 评论(0) | 转发(1) |