for (;;) {
//Something to be done repeatedly
}
Run Code Online (Sandbox Code Playgroud)
我已经看到这种东西使用了很多,但我觉得它很奇怪......说再说清楚while(true)
,还是沿着这些方向做些什么?
我猜这(因为许多程序员采用神秘的代码的原因)这是一个微小的利润更快?
为什么,它真的值得吗?如果是这样,为什么不这样定义它:
#define while(true) for(;;)
Run Code Online (Sandbox Code Playgroud)
我有一个很长的正则表达式,我想在我的JavaScript代码中拆分成多行,以根据JSLint规则保持每行长度为80个字符.我认为这对阅读来说更好.这是模式样本:
var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
Run Code Online (Sandbox Code Playgroud) 如果你不得不循环7次循环,你会使用:
for (int i = 0; i < 7; i++)
Run Code Online (Sandbox Code Playgroud)
要么:
for (int i = 0; i <= 6; i++)
Run Code Online (Sandbox Code Playgroud)
有两个注意事项:
为了性能,我假设Java或C#.使用"小于"或"小于或等于"是否重要?如果您对其他语言有所了解,请说明哪些语言.
为了便于阅读,我假设基于0的数组.
UPD:我提到的基于0的数组可能会让人感到困惑.我不是在讨论迭代数组元素.只是一个循环.
关于使用常数可以解释这个神奇数字是什么,下面有一个好点.所以,如果我有" int NUMBER_OF_THINGS = 7
"然后" i <= NUMBER_OF_THINGS - 1
"看起来很奇怪,不会.
可能重复:
是否有充分的理由对T-SQL关键字使用大写?
简单的问题.我个人发现一串小写字符比一串大写字符更易读.是一些旧的/流行的SQL味道敏感或什么?
以供参考:
select
this.Column1,
case when this.Column2 is null then 0 else this.Column2 end
from dbo.SomeTable this
inner join dbo.AnotherTable another on this.id = another.id
where
this.Price > 100
Run Code Online (Sandbox Code Playgroud)
与
SELECT
this.Column1,
CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END
FROM dbo.SomeTable this
INNER JOIN dbo.AnotherTable another ON this.id = another.id
WHERE
this.Price > 100
Run Code Online (Sandbox Code Playgroud)
前者对我来说似乎更具可读性,但我更经常地看到后一种方式.
简单的问题,从可读性的角度来看,您更喜欢哪种方法名称作为布尔方法:
public boolean isUserExist(...)
Run Code Online (Sandbox Code Playgroud)
要么:
public boolean doesUserExist(...)
Run Code Online (Sandbox Code Playgroud)
要么:
public boolean userExists(...)
Run Code Online (Sandbox Code Playgroud) 似乎有很多色轮,颜色选择器和颜色匹配器网络应用程序,在那里你给出一种颜色,他们会发现一些其他颜色,当组合使用时会产生谐波布局.但是,它们中的大多数仅关注背景颜色,并且在每种背景颜色上打印的任何文本(如果在预览中完全打印文本)是黑色或白色.
我的问题不同了.我知道我想用于文本区域的背景颜色.我需要帮助的是选择几种颜色(更多,更好,我可以在这个背景上用作字体颜色).最重要的是,颜色将确保字体是可读的(对比度不是太低,也可能不是太高,以避免眼睛受到压力),当然,前景和背景的组合看起来很好.
有人知道这样的申请吗?我更喜欢Web应用程序,我需要下载任何内容.谢谢.
我有一个关于习语和可读性的问题,似乎有一个针对这个特殊情况的Python哲学冲突:
我想从字典B中构建字典A.如果B中不存在特定的键,则不执行任何操作并继续.
哪种方式更好?
try:
A["blah"] = B["blah"]
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud)
要么
if "blah" in B:
A["blah"] = B["blah"]
Run Code Online (Sandbox Code Playgroud)
"做并请求原谅"与"简单和明确".
哪个更好?为什么?
通常情况下,开发人员将面临解决问题的两种可能方式之间的选择 - 一种是惯用的和可读的,另一种不太直观,但可能表现更好.例如,在基于C语言中,有两种方法可以将数字乘以2:
int SimpleMultiplyBy2(int x)
{
return x * 2;
}
Run Code Online (Sandbox Code Playgroud)
和
int FastMultiplyBy2(int x)
{
return x << 1;
}
Run Code Online (Sandbox Code Playgroud)
第一个版本更容易为技术和非技术读者选择,但第二个版本可能表现更好,因为比特移位比乘法更简单.(现在,让我们假设编译器的优化器不会检测到它并对其进行优化,尽管这也是一个考虑因素).
作为开发人员,最初的尝试会更好吗?
不要混淆如何拆分字符串解析明智,例如:
在C++中拆分字符串?
关于如何在c ++中将字符串拆分为多行,我感到有点困惑.
这听起来像一个简单的问题,但请采取以下示例:
#include <iostream>
#include <string>
main() {
//Gives error
std::string my_val ="Hello world, this is an overly long string to have" +
" on just one line";
std::cout << "My Val is : " << my_val << std::endl;
//Gives error
std::string my_val ="Hello world, this is an overly long string to have" &
" on just one line";
std::cout << "My Val is : " << my_val << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
我意识到我可以使用这个std::string
append()
方法,但我想知道是否有任何更短/更优雅(例如更多pythonlike,但显然三重引号等在c ++中不支持)的方式将c ++中的字符串分解为多行为了缘故可读性. …
STL是C++世界的关键部分,大多数实现源自Stepanov和Musser的初步努力.
我的问题是代码的重要性,并且它是人们为敬畏和学习目的查看编写良好的C++示例的主要来源之一:为什么STL的各种实现如此令人作呕? - 复杂和一般来说,如何不从美学的角度来编写C++代码的好例子.
下面的代码示例不会在我工作过的地方通过代码审查,原因不同于变量命名,布局,宏和操作符的使用,这些操作符需要的不仅仅是简单的一瞥,以确定实际发生的情况.
template<class _BidIt> inline
bool _Next_permutation(_BidIt _First, _BidIt _Last)
{ // permute and test for pure ascending, using operator<
_BidIt _Next = _Last;
if (_First == _Last || _First == --_Next)
return (false);
for (; ; )
{ // find rightmost element smaller than successor
_BidIt _Next1 = _Next;
if (_DEBUG_LT(*--_Next, *_Next1))
{ // swap with rightmost element that's smaller, flip suffix
_BidIt _Mid = _Last;
for (; !_DEBUG_LT(*_Next, *--_Mid); )
;
_STD iter_swap(_Next, _Mid);
_STD …
Run Code Online (Sandbox Code Playgroud) readability ×10
c++ ×3
performance ×2
api ×1
c ×1
coding-style ×1
colors ×1
conventions ×1
defaultdict ×1
expression ×1
formatting ×1
idioms ×1
javascript ×1
jslint ×1
optimization ×1
python ×1
regex ×1
sql ×1
stl ×1
string ×1
syntax ×1