十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容主要讲解“C++中怎么表达意图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中怎么表达意图”吧!
做网站、网站设计介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。
只要代码不是意图的直接陈述(例如在名称或者注释中),就可能存在实际行为和意图不一致的情况。
gsl::index i = 0;while (i < v.size()) { // ... do something with v[i] ...}
恰好循环通过v的每个元素的意图没有被表达。index的实现细节被暴露出来(因此它可能被误用),而且i的有效范围要超过循环的范围,这一点可能是有意的,也可能是无意的。读者无法只通过这段代码了解这些。
Better(较好):
for (const auto& x : v) { /* do something with the value of x */ }
现在,这里没有清楚地提示迭代机制和作用在const元素的循环操作符,因此也就不会发生意外的修改。如果需要修改,就这么写:
for (auto& x : v) { /* modify x */ }
有时作为更好的选择,可以使用一个命名算法。这个例子中使用Ranges TS中的for_each是因为它可以直接表达意图。
for_each(v, [](int x) { /* do something with the value of x */ });
for_each(par, v, [](int x) { /* do something with the value of x */ });
最后一个变形更加清楚的表明了我们并不关心v中元素被处理的次序。
程序员应该熟悉
The guidelines support library 支持库指南
The ISO C++ Standard Library ISO C++标准库
Whatever foundation libraries are used for the current project(s)目前项目中使用的任何基本库。
换一个表达:表明要做什么而不是怎么做。
Note(注意)
某些语言比其他语言更善于表达意图。
Example(示例)
如果两个整数值表示2维平面中的一个点的坐标,那么可以说:
draw_line(int, int, int, int); // obscure难以理解的draw_line(Point, Point); // clearer清晰的
寻找那些具有更好选择的常见样式。
simple for
loops vs. range-for
loops 对于循环来讲,比较简单的for循环和range
f(T*, int)
interfaces vs. f(span
interfaces f(T*, int)
接口对 f(span
接口
loop variables in too large a scope(很大范围中使用的循环变量)
naked new
and delete 直接的new和delete操作
functions with many parameters of built-in types 包含很多内置类型参数的函数
到此,相信大家对“C++中怎么表达意图”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!