我的问题与前一个问题有关,但所提供的解决方案并未解决我在下面概述的问题.谷歌搜索后,我没有找到任何代码样式指南,解决像这样的if语句中的长条件的具体问题.
if( isNull(value1) ||
isToLong(value1) ||
hasBadFormat(valule1)){
doSomething();
}else{
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
要么:
if( isNull(value1) || isToLong(value1) || hasBadFormat(valule1) ){
doSomething();
}else{
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
我对这两种风格的问题是它让我的眼睛难以在真正的块中找到代码并将其与条件分开,或者在长条件后很难确定正确的下一行一行,特别是if语句已经缩进函数或其他if语句中的几个选项卡.
做这样的事情会更好吗?
if( isNull(value1) ||
isToLong(value1) ||
hasBadFormat(valule1)){
doSomething();
}else{
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
或者这种风格会更好地以下列方式之一缩进每个新条件:
if( isNull(value1) ||
isToLong(value1) ||
hasBadFormat(valule1)){
doSomething();
}else{
doSomethingElse();
}
if( isNull(value1)
|| isToLong(value1)
|| hasBadFormat(valule1) ){
doSomething();
}else{
doSomethingElse();
}
Run Code Online (Sandbox Code Playgroud)
有没有人有一个编码风格指南(可能是公司编码风格政策),以不同于我提出的方式解决这个问题?哪一个更好,你能找到我提到的解决方案的任何缺点或优点吗?
我想在Perl中做这样的事情:
$Module1="ReportHashFile1"; # ReportHashFile1.pm
$Module2="ReportHashFile2"; # ReportHashFile2.pm
if(Condition1)
{
use $Module1;
}
elsif(Condition2)
{
use $Module2;
}
Run Code Online (Sandbox Code Playgroud)
ReportHashFile*.pm包含一个包ReportHashFile*.
另外如何根据动态模块名称引用模块内部的数组?
@Array= @$Module1::Array_inside_module;
Run Code Online (Sandbox Code Playgroud)
无论如何我能做到这一点.某种编译器指令?
如何在bash中完成以下内容?
if ("$a" == "something" || ($n == 2 && "$b" == "something_else")); then
...
fi
Run Code Online (Sandbox Code Playgroud) 我有一小段代码检查IP地址的有效性:
function valid_ip()
{
local ip=$1
local stat=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
if [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]; then
stat=1
else
stat=0
fi
fi
return $stat
}
Run Code Online (Sandbox Code Playgroud)
但我在bash条件中的使用存在问题.我已经尝试了很多技术来测试它的返回值,但是大多数技术都失败了.
if [[ !$(valid_ip $IP) ]]; then
if [[ $(valid_ip IP) -eq 1 ]]; then
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我该怎么办?
编辑
根据你的建议我使用了类似的东西:
if valid_ip "$IP" ; then
... do stuff
else
perr "IP: \"$IP\" is not a …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的pandas数据框:
portion used
0 1 1.0
1 2 0.3
2 3 0.0
3 4 0.8
Run Code Online (Sandbox Code Playgroud)
我想基于used列创建一个新列,所以df看起来像这样:
portion used alert
0 1 1.0 Full
1 2 0.3 Partial
2 3 0.0 Empty
3 4 0.8 Partial
Run Code Online (Sandbox Code Playgroud)
alert基于创建新列used是1.0,alert应该是Full.used是0.0,alert应该是Empty.alert应该是Partial.最好的方法是什么?
if...else if我见过的每个例子都包含一个最终else条款:
if (condition1) {
doA();
} else if (condition2) {
doB();
} else if (condition3) {
doC();
} else {
noConditionsMet();
}
alwaysDoThis();
Run Code Online (Sandbox Code Playgroud)
我理解这对于嵌套if...else语句来说基本上是语法糖:
if (condition1) {
doA();
} else {
if (condition2) {
doB();
} else {
if (condition3) {
doC();
} else {
noConditionsMet();
}
}
}
alwaysDoThis();
Run Code Online (Sandbox Code Playgroud)
我从来没有见过的任何例子if...else if是省略了最后else条款.但是看到简单的if语句(没有else子句)是有效的,并且通过上面的等效"嵌套语句",我的直觉告诉我这样做是可以的:
if (condition1) {
doA();
} else if (condition2) {
doB();
} else …Run Code Online (Sandbox Code Playgroud) 我有多个条件要检查,如下所示,
if(pouch.getStatus().equals("Finalized") || pouch.getStatus().equals("Ready")
|| pouch.getStatus().equals("Checkout") || pouch.getStatus().equals("Confirmed")
|| pouch.getStatus().equals("Book") || pouch.getStatus().equals("Started")
|| pouch.getStatus().equals("Inital") || pouch.getStatus().equals("Close")) {
// Body
}
Run Code Online (Sandbox Code Playgroud)
是否有任何简单的方法来检查类似SQL IN条件的上述条件,以便代码看起来更简单?
我们不能CASE在SQL SELECT语句之外使用条件吗?
例如:
CASE
WHEN old.applies_to = 'admin' THEN _applies_to = 'My Self'
ELSE _applies_to = initcap(old.applies_to)
END
_summary = _summary || '<li>Apply To: ' || _applies_to || '</li>';
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: syntax error at or near "_summary"
LINE 86: _summary = _summary || '<li>Apply To: ' || _applies ...
Run Code Online (Sandbox Code Playgroud) 如何实现以下psuedo-SQL语句的"含义":
COUNT(distinct id where attribute1 > 0)
Run Code Online (Sandbox Code Playgroud)
换句话说,我如何制作有条件的,不同的计数陈述?
谢谢!
这是我的代码,对于除了空字符串,null和false之外的所有内容都是true:
if (routeinfo["no_route"] == "" || routeinfo["no_route"] == null || routeinfo["no_route"] == false) {
// do sth ...
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码,对于除了空字符串,null,false或零之外的所有内容都是true:
if (routeinfo["no_route"] == "" || routeinfo["no_route"] == null || routeinfo["no_route"] == false || routeinfo["no_route"] == 0) {
// do sth...
}
Run Code Online (Sandbox Code Playgroud)
我怎么能在Dart写这个更短的?还是不可能?
conditional ×10
if-statement ×3
bash ×2
case ×1
coding-style ×1
collections ×1
count ×1
dart ×1
distinct ×1
hashset ×1
include ×1
java ×1
javascript ×1
module ×1
pandas ×1
perl ×1
plpgsql ×1
postgresql ×1
python ×1
return-value ×1
shell ×1
syntax ×1
t-sql ×1
where-in ×1