如果我有一个具有大量条件的功能,那么组织它的最佳方法是什么?
我担心的是其他人进入代码并了解正在发生的事情.即使示例很简单,也可以想象条件非常复杂.
举个例子:
public void function(string value, string value2)
{
if (value == null)
return;
if (value2 == value)
DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
要么
public void function(string value, string value2)
{
if (value != null)
{
if (value2 == value)
DoSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public void function(string value, string value2)
{
if (value != null && value2 == value)
DoSomething();
}
Run Code Online (Sandbox Code Playgroud) 我从SAS来到R,数字缺失设置为无穷大.所以我们可以说:
positiveA = A > 0;
Run Code Online (Sandbox Code Playgroud)
在R中,我必须像下面这样冗长:
positiveA <- ifelse(is.na(A),0, ifelse(A > 0, 1, 0))
Run Code Online (Sandbox Code Playgroud)
我发现这种语法很难阅读.无论如何我可以修改ifelse函数来考虑NA是一个特殊值,对于所有比较条件总是假的吗?如果没有,考虑NA作为-Inf也会起作用.
同样,在字符变量的ifelse语句中将NA设置为''(空白).
谢谢.
我有in_array功能问题.以下测试返回true:
in_array(0, array('card', 'cash'))
Run Code Online (Sandbox Code Playgroud)
怎么不可能,我怎么能阻止呢?
然而
in_array(null, array('card', 'cash'))
Run Code Online (Sandbox Code Playgroud)
回报false.
我们知道用符号表示:
class Foo(object):
a = 1
def __init__(self):
self.b = 2
def c(self):
print('c')
Run Code Online (Sandbox Code Playgroud)
我们可以创建静态变量Foo.a,'normal'变量b,它将在创建和实例Foo以及方法之后可用c
今天我真的很惊讶,我可以在类中使用条件语句,但不在函数范围内
class C():
if True:
a = 1
b = 2
Run Code Online (Sandbox Code Playgroud)
像C++/Java这样的语言告诉我法律符号类似于:
class Name():
variable = <expression>
Run Code Online (Sandbox Code Playgroud)
你能描述一下其他规则吗?我该如何命名这个范围?
为什么null对象设计模式优于null对象检查.如果我们在null对象设计模式中查看内存占用,我们将创建一个相同类型的新虚拟对象.如果我们在搜索查询中有大对象和大量可空对象的对象,则该模式将创建大量空对象,这将占用比简单检查更多的内存,对于null,我的成本可忽略的性能延迟.
由于我的数据集是时间序列,因此我有30个不同的数据帧,每个数据帧的行数都超过10,000。我想检查一下温度值低于40之前的趋势。
因此,我想在温度值低于40时对行进行子集化,并且还希望在温度值低于40之前对24行进行子集化。
我已经尝试了一些代码,下面工作的唯一代码。但是子集需要更长的时间(例如,一个数据帧超过10分钟)。因此,我的代码很糟糕。所以我想知道python中可以更快子集的代码。你们能帮我吗?
df=temperature_df.copy()
drop_temperature_df=pd.DataFrame()
# get the index during drop temperature
drop_temperature_index=np.array(df[df[temperature]<40].index)
# subset the data frame for 24 hours before drop temperature
for i,index in enumerate(drop_temperature_index):
drop_temperature_df=drop_temperature_df.append(df.loc[index-24:index,:])
K['K_{}'.format(string)]=drop_temperature_df.copy() #save the subset data frame
Run Code Online (Sandbox Code Playgroud)
因此,像下面的数据一样,我在1/26/2018 0800的温度点低于40,所以,我想在40以下的温度子集使用之前的24行(1/25/2018 0800直到1/26/2018 0800)。

根据构建来自的分支,我需要使用稍微不同的命令行参数。特别是我想在从分支构建时上传快照关系工件,并在构建主时释放工件。
有没有办法有条件地改变变量?
我尝试使用像这样的 except/only 关键字
stages:
- stage
variables:
TYPE: Release
.upload_common:
stage: stage
tags: ["Win"]
script:
- echo Uploading %TYPE%
.upload_snapshot:
variables:
TYPE: "Snapshot"
except:
- master
upload:
extends:
- .upload_common
- .upload_snapshot
Run Code Online (Sandbox Code Playgroud)
不幸的是,它在构建 master 时跳过了整个上传步骤。
我在这里使用“扩展”模式的原因是我有 win 和 mac 平台,它们使用稍微不同的变量替换语法($ vs %)。我还有一些不同的构建配置 - 调试/发布,32 位/64 位。
下面的代码确实有效,但我不得不重复发布和快照的步骤,一次启用一个。
stages:
- stage
.upload_common:
stage: stage
tags: ["Win"]
script:
- echo Uploading %TYPE%
.upload_snapshot:
variables:
TYPE: "Snapshot"
except:
- master
.upload_release:
variables:
TYPE: "Release"
only:
- master
upload_release:
extends:
- .upload_common …Run Code Online (Sandbox Code Playgroud) Terraform 上的一些资源支持可选属性。我有兴趣仅在满足条件时才声明和设置可选属性的值。否则,根本不要声明它。
我发现的所有建议都是基于声明属性并将其值设置为null如果条件不满足,而不是根本不声明属性。
我有办法做类似以下的事情吗?在伪代码中:
resource "some_resource" "this" {
name = var.name
if var.name == "some_name":
some_optional_attribute = "some_value"
else:
pass # do nothing, don't even declare the optional attribute
}
Run Code Online (Sandbox Code Playgroud)
请告诉我,提前谢谢!
我现在正在编写一个下载管理器,我问自己是否可能:
if($ext == ('zip' || 'png')) { echo "Is it possible ?" }
Run Code Online (Sandbox Code Playgroud)
它每次都返回true,所以我想这是不可能的.但是你知道我怎么能轻易做到这一点吗?我的意思是,没有足够的"if"或"switch"......
不管怎么说,还是要谢谢你 !:)
我正面临JPA标准查询的问题.如何在条件查询中使用if else添加多个where子句...
我的要求是:
CriteriaBuilder builder = getEm().getCriteriaBuilder();
CriteriaQuery<Object> query = builder.createQuery(Object.class);
// From
Root<EntityClass> entity= query.from(EntityClass.class);
// Select
query.multiselect(entity.get("id").get("col1"),entity.get("id").get("col2"));
// Where
Predicate p1 = builder.and(builder.equal(entity.get("col3"), value3));
Predicate p2 = builder.and(builder.equal(entity.get("col4"), value4));
Predicate p3 = builder.and(builder.equal(entity.get("col5"), value5));
if(someCondition1){
query.where(p1);
}else if(someCondition2){
query.where(p1);
}
query.where(p3);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,语句query.where(p3); 替换先前设置的where子句条件p1和p2.我发现的替代品是如下所示
if(someCondition1){
query.where(p1, p3);
}else if(someCondition2){
query.where(p2, p3);
}else{
query.where(p3);
}
Run Code Online (Sandbox Code Playgroud)
但这不是一个好方法,因为当有很多if-else时,编写重复代码变得非常糟糕.任何人都可以为此解决问题吗?
jpa predicate where-clause criteria-api conditional-statements