[问题] 想请问这样有没有违反十三诫之八

楼主: johnjohnlin (嗯?)   2015-08-16 11:40:55
第八条是这么写的
你也不可以在一个运算式(expression)中,对一个基本型态的变量修改其值,
~~
我的问题如下:
这是 list 的资结构:
struct ListNode {
ListNode *next;
};
假设我现在有一个 link list 的尾巴 ListNode *tail
我想在他后面插一个新的 node,并且更新 tail
我可以这样作
ListNode *new_tail = new ListNode();
tail->next = new_tail;
tail = new_tail;
想请问如果写成一行
tail = tail->next = new ListNode();
在我的电脑上会动
不过想请问这样会不会造成我在一行内连续改 tail 两次
而违法了第八条?
谢谢
作者: CLANNAD (-クラナド-)   2015-08-16 14:23:00
不会违反
作者: Killercat (杀人猫™)   2015-08-16 16:11:00
这写法很迷惑人喔....
作者: Caesar08 (Caesar)   2015-08-17 00:00:00
不会
作者: stupid0319 (征女友)   2015-08-17 00:29:00
浓缩式写法只怕别人看不懂,放久了自己也看不懂QQ
作者: fatrabitree (胖兔子)   2015-08-17 02:09:00
我顶多缩成两行
作者: leoloveivy (cried)   2015-08-17 16:13:00
但写程式还是要易读吧现在你知道再干嘛 以后可能会忘
作者: david54001 (阿佐)   2015-08-17 20:54:00
没必要这么精简吧,还会造成自己的困扰
作者: OPIV (Monitor)   2015-08-17 22:15:00
这样有修改两次?
作者: uranusjr (←這人是超級笨蛋)   2015-08-18 00:45:00
没有

Links booklink

Contact Us: admin [ a t ] ucptt.com