我最近继承了一个旧项目来进行一些优化并添加新功能.在这个项目中,我在整个代码中看到了这种类型的条件:
if (int_variable)
Run Code Online (Sandbox Code Playgroud)
代替
if (int_variable > 0)
Run Code Online (Sandbox Code Playgroud)
我只使用了第一个选项boolean和变量类型.
你认为第一种选择是一种"正确"的方法来检查数字是否为正数?
我看过很多例子,这使我不只是好奇
以下是两个示例:
return;void函数的末尾,这简直是荒谬的。return;在函数中间使用可以打破它。我不喜欢下面的示例可以阐明第二种情况(第一种情况很明显):
- SomeMethodThatReturnsSomethingOrNot(var param1){
if (param1 == null){
CallThisMethod();
return;
}
CallThisOtherMethod(param1);
}
Run Code Online (Sandbox Code Playgroud)
对很多人来说,这很好而且很清楚。对我来说,这充其量是可以接受的。
为什么不简单地使用an if else?您可以避免在return代码中间不需要任何内容,它不会降低可读性,而且,我不知道还有什么要说的,对我来说,这似乎是一种更好的做法。
- SomeMethodThatReturnsSomethingOrNot(var param1){
if (param1 == null){
CallThisMethod();
}else{
CallThisOtherMethod(param1);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想在这里强调示例的简单性,我知道可以制作出一些性感的东西,但是我们假装比null检查要复杂一些,需要使用相同的if-return替代of if-else技术。
那么,每个人的想法是什么?
当该方法无效或我实际上不想返回任何东西时,我一直强烈反对返回任何东西。如果最终遇到这种情况,我想重新考虑一下我的体系结构,因为它不应该发生。
我是完全错误/正确的还是这里有讨论空间?
将参数分成行的惯例是什么?是否有PEP对此进行制裁?我没有在PEP8中找到它.
file_like = f(self,
path,
mode=mode,
buffering=buffering,
encoding=encoding,
errors=errors,
newline=newline,
line_buffering=line_buffering,
**kwargs)
Run Code Online (Sandbox Code Playgroud) 我似乎无法找到有关haskells布局功能的更多信息,因为据我所知,它类似于pythons格式化要求,除了它是可选的.如何选择不正确使用此选项?从没有它开始是一个好主意,以便我对语言本身有一个坚实的感觉?
这有点困扰我一段时间了.在学习Python之前我学习了Haskell,所以我一直喜欢将许多计算作为映射到列表中.这是由列表理解精美表达的(我在这里给出了pythonic版本):
result = [ f(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)
但在许多情况下,我们希望在x上执行多个语句,例如:
result = [ f(g(h(x))) for x in list ]
Run Code Online (Sandbox Code Playgroud)
这很快变得笨重,难以阅读.
我的正常解决方案是将其扩展回for循环:
result = []
for x in list:
x0 = h(x)
x1 = g(x0)
x2 = f(x1)
result.append(x2)
Run Code Online (Sandbox Code Playgroud)
关于这一点困扰我的一件事就是不得不初始化空列表'结果'.这是一个微不足道的事情,但它让我感到不快.我想知道是否有任何替代等效形式.一种方法可能是使用本地函数(这是他们在Python中调用的吗?)
def operation(x):
x0 = h(x)
x1 = g(x0)
x2 = f(x1)
return x2
result = [ operation(x) for x in list ]
Run Code Online (Sandbox Code Playgroud)
上述两种形式中的任何一种都有什么特别的优点/缺点吗?或者是否有更优雅的方式?
我试图让Javascript通过每隔几秒改变它们的背景来改变某些DIV ID的样式.基本上,一个淡出的标题......这是我的代码,它根本不会改变背景.
你怎么称呼一个功能?
我想创建一个在文本框中输入的逗号分隔字符串(文件扩展名)的字符串数组/列表.
对于以下代码块:
Dim csv As String = Textbox1.Text + ","
While csv.IndexOf(".") <> -1
lstOfStrings.Add(csv.Substring(0, csv.IndexOf(",")))
csv = csv.Remove(0, csv.IndexOf(",") + 1)
End While
Run Code Online (Sandbox Code Playgroud)
输出是:
Textbox1.Text =".exe,.php"
listOfStrings = {".exe",".php"}
有没有更好的方法来编写这段代码?
他是一名优秀的程序员(赢得了一些比赛),但他绝对无视格式化.他认为我,j,k很美......我希望他不会发现goto关键字的存在.
我喜欢对所有非局部变量使用'this'语句:对于属性,类变量等,我这样做是为了方便阅读代码,易于理解这个变量的来源.
object someVar;
object SomeProperty { get; set }
void SomeMethod(object arg1, object arg2)
{
this.SomeProperty = arg1;
this.someVar = arg2;
}
Run Code Online (Sandbox Code Playgroud)
您如何看待,使用'this'的正确方法是什么?
我正在使用来自Imar Spaanjaars网站的教程,使整个表格行可点击并对其产生悬停效果.一旦用户将鼠标悬停在表格行上,它就会删除该行的预定义背景颜色.我想这样做它不会覆盖这种风格.我怎么能这样做?
<script type="text/javascript">
function ChangeColor(tableRow, highLight)
{
if (highLight)
{
tableRow.style.backgroundColor = '#dcfac9';
}
else
{
tableRow.style.backgroundColor = 'white';
}
}
function DoNav(theUrl)
{
document.location.href = theUrl;
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果您有更好的建议来完成这项任务,我很乐意听到它们!
我的tr标签中有一个bgcolor标签,如果已经读取了特定的邮件,则由我的php设置.
coding-style ×10
c# ×2
javascript ×2
python ×2
.net ×1
c ×1
c++ ×1
children ×1
formatting ×1
haskell ×1
idioms ×1
if-statement ×1
image ×1
performance ×1
python-2.7 ×1
return ×1
string ×1
this ×1
vb.net ×1