我在论坛上进行了搜索,但是找不到为什么应避免使用它的答案,而只是为什么它不是灵丹妙药。所以我不认为这个问题是重复的。
是否有有效的理由为什么我应该取消学习惯用的系统匈牙利语?
到目前为止,我发现使用它具有以下好处:
- 一致的变量命名
- 您无需搜索即可看到类型(智能在半数时间中已失效/已建立索引,因此这仍然是一个合理的原因)
- 语义仍然可以包含在名称的第二部分中
以及以下缺点:
- 惹恼了一些人(不知道为什么)
- 如果更改了类型,则该类型可能与变量的名称不匹配(我不认为这是正当的理由,类型很少更改,并且您拥有“全部重命名”)
所以为什么:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
差于:
vector<string> cityNames;
wstring city = L"abc";
//more code here
cityNames.push_back(city);//Are we pushing back int on a queue? Float on a stack? Something else?
cityNames.push_back(city)
很清楚。这是城市名称的列表,您要添加一个。