看下不同的代码书写方式

代码非常简单,就是根据传入字符的不同,返回向量的最大或最小值而已:

 1 function [out] = myminvec(vec, c)
 2 %myminvec returns the minimum value in a vector
 3 %Format: myminvec(vector,c)
 4 
 5 out = vec(1);
 6 if c == 'm'
 7     for i = 2:length(vec)
 8         if vec(i) < out
 9             out = vec(i);
10         end
11     end
12 %end
13 elseif c == 'M'
14     for i = 2:length(vec)
15         if vec(i) > out
16             out = vec(i);
17         end
18     end
19 end
20 end

为了方便就做成封装了一个函数,这样当然没有问题,但是,仔细看就发现,逻辑完全一致,重复的语句也太多了,是可忍孰不可忍,改写成如下:

 1 function [out] = myminvecW(vec, c)
 2 %myminvec returns the minimum value in a vector
 3 %Format: myminvec(vector,c)
 4 
 5 out = vec(1);
 6 for i = 2:length(vec)
 7     if c == 'm'
 8         vec(i) < out
 9     elseif c == 'M'
10         vec(i) > out
11     end
12     out = vec(i);
13 end
14 end

也许就是重构的趣味所在吧

posted @ 2022-08-24 16:22  叕叒双又  阅读(72)  评论(0编辑  收藏  举报