如果我有一个具有大量条件的功能,那么组织它的最佳方法是什么?
我担心的是其他人进入代码并了解正在发生的事情.即使示例很简单,也可以想象条件非常复杂.
举个例子:
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) 有没有其他方法可以在Java中实现一个switch case,而不是看起来不好看的else.根据选择相应的方法,必须执行一组值组合.
可能重复:
C#条件编译和框架目标
我有一些代码在.NET 4中工作,但在.NET 3.5中不起作用,在.NET 3.5中它需要使用对Windows的互操作调用.
我想在两种情况下使用"ifdef"来使用不同的代码路径(最终我将弃用.NET 3.5代码).
是否有预定义的指令值来确定何时使用.NET4编译代码?是否有与所有预定义指令(DEBUG,TRACE,...)的良好链接?以下链接仅提供指令,但不提供标准预定义值:
http://msdn.microsoft.com/en-us/library/ed8yd1ha(v=VS.100).aspx
我从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.
我不确定C/C++三元运算符的执行保证.
例如,如果给出一个地址和一个布尔值来告诉该地址是否适合阅读,我可以使用if/else轻松避免错误读取:
int foo(const bool addressGood, const int* ptr) {
if (addressGood) { return ptr[0]; }
else { return 0; }
}
Run Code Online (Sandbox Code Playgroud)
但是?:,ptr除非addressGood是真的,否则三元运算符()可以保证不会被访问?
或者优化编译器是否可以生成ptr在任何情况下访问的代码(可能使程序崩溃),将值存储在中间寄存器中并使用条件赋值来实现三元运算符?
int foo(const bool addressGood, const int* ptr) {
// Not sure about ptr access conditions here.
return (addressGood) ? ptr[0] : 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
我们知道用符号表示:
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)
你能描述一下其他规则吗?我该如何命名这个范围?
如果缺少特定的apt包,我正在寻找一系列任务.
例如:
如果没有安装石墨碳,请执行以下操作:
- apt: name=debconf-utils state=present
- shell: echo 'graphite-carbon/postrm_remove_databases boolean false' | debconf-set-selections
- apt: name=debconf-utils state=absent
Run Code Online (Sandbox Code Playgroud)
另一个例子:
如果未安装statsd,请执行以下操作:
- file: path=/tmp/build state=directory
- shell: cd /tmp/build ; git clone https://github.com/etsy/statsd.git ; cd statsd ; dpkg-buildpackage
- shell: dpkg -i /tmp/build/statsd*.deb
Run Code Online (Sandbox Code Playgroud)
我怎么会开始破解这个?
我想也许我可以做某个-shell: dpkg -l|grep <package name>并以某种方式捕获返回代码.
为什么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)。
