C++中怎么表达意图

本篇内容主要讲解“C++中怎么表达意图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++中怎么表达意图”吧!

做网站、网站设计介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

P.3: Express intent(表达意图)

Reason(原因)

只要代码不是意图的直接陈述(例如在名称或者注释中),就可能存在实际行为和意图不一致的情况。

Example(示例)
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(注意)

换一个表达:表明要做什么而不是怎么做。

Note(注意)

某些语言比其他语言更善于表达意图。

Example(示例)

如果两个整数值表示2维平面中的一个点的坐标,那么可以说:

draw_line(int, int, int, int);  // obscure难以理解的draw_line(Point, Point);        // clearer清晰的
Enforcement(实施建议)

寻找那些具有更好选择的常见样式。

  • 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++中怎么表达意图”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前题目:C++中怎么表达意图
转载注明:http://csdahua.cn/article/jdjggh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流