【发布时间】:2019-04-12 14:52:04
【问题描述】:
我想多次执行单个操作,而不定义计数器。例如,像这样:
do(10)
{
//do something
}
我认为这在几种不同的情况下会很有用。例如:
- 通过起始索引从
std::list中删除多个连续项目。 - 在一段时间内或在某个特定时间多次发出某些信号。
- 将相同的数据添加到列表中以进行自定义初始化 许多场景不限于上面列出的场景。
其他语言有类似这样的语法,允许重复执行相同的命令,而不必显式定义计数器变量。在我看来,定义计数器完全不符合人类的思维。
模拟我们的想法:
实际上,我们总是在做某事。直接几次。
但是现在的语法是这样的:
- 呃……我要做某事。三遍。
- 好的,准备好了,我开始了。
灵魂拷问:为什么 C++ 不提供简洁的语法?虽然我是 C++ 的粉丝,但我不禁想为什么有些人不喜欢 C++,因为 C++ 很少考虑人们的想法。我希望 C++ 能够与时俱进,成为未来的编程语言。
不同于Modern C++ way to repeat code for set number of times。我给出了我的计划,应用场景,甚至情感诉求。
【问题讨论】:
-
for (int i = 0; i < 10; ++i)是不是很糟糕?至少它概括。 -
while (true) { /* do something */ }多次执行某项操作。看不到柜台;) -
与
for的一般形式相反,存在这种语法有什么好处? -
据我所知,完全按照 OP 的建议将其放入 C++ 不会是一个重大变化。 ISO家伙会讨厌它。在初始化向量时甚至可能很有用。它还具有不会将计数变量泄漏到循环体中的优点。
-
为什么会存在?您能为此类功能提出一个有意义的用例吗?在幼儿园级别的“学习”语言中向孩子介绍编程是有意义的。但是,在任何真正的工业级语言中,这样做的目的是什么?哪里可能需要多次重复相同的动作?我的意思是,我可以强迫自己去想一些这样的例子,但它们是如此的稀有和人为的......这并不能证明引入一个专门的语言特性是合理的。