a.attribute = b.attribute ? b.attribute : a.attribute;
这个语法有问题吗?
不一定效率高,只是很精炼
三目运算符而已,问题没看出来。
语法没问题。
要注意,a.attribute = a.attribute
并不是“指针指向自己”,而是**把等号前面的a.attribute
这个指针 指向了 等号后面的a.attribute
这个指针原先所指的那块地方。(当然内存管理语义加了copy
除外,会 copy 一次。)语法上没有任何问题,不会造成影响~
这个玩意叫三元运算符。支持的语言没问题,不支持的有问题。
等于下面这个:
if(b.attribute) {
a.attribute = b.attribute;
} else {
a.attribute = a.attribute;
}