我正在尝试编写一段非常简单的代码,但无法找到一个优雅的解决方案:
int count = 0;
jdbcTemplate.query(readQuery, new RowCallbackHandler() {
@Override
public void processRow(ResultSet rs) throws SQLException {
realProcessRow(rs);
count++;
}
});
Run Code Online (Sandbox Code Playgroud)
这显然不能编译.我知道的两个解决方案都很臭:我不想计算一个类字段,因为它实际上是一个我需要用于记录目的的局部变量.我不想数数数组,因为它很难看.
这只是愚蠢的,必须有一个合理的方法来做到这一点?
这个问题适用于每个具有短路AND运算符的编程语言,而不仅仅是C#.
问题很简单 - 使用短路评估来避免超出范围的索引异常,例如:
if ((x > 0) && (bar[x] == foo))
Run Code Online (Sandbox Code Playgroud)
要么
if (((x > 0) && (x < bar.Length)) && (bar[x] == foo))
Run Code Online (Sandbox Code Playgroud)
糟糕的编码风格?我知道我可以像这样嵌套循环:
if (x > 0)
{
if (bar[x] == foo)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但我发现这是非常难以理解的.
我用django来构建我的网络应用程序.其中一个页面发送不同的文件(具有不同的文件类型).我有6种文件类型.而我当前的代码版本(它真的很糟糕 - 这就是我写这个问题的原因)是:
try:
file = request.FILES[u'file_doc']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_fb2']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_pdf']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_txt']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_other']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_chm']
except MultiValueDictKeyError:
return HttpResponse('bad file type')
Run Code Online (Sandbox Code Playgroud)
你能告诉我 - 如何改善这种糟糕的代码和平.
TIA!
我正在尝试编译这段Python代码 -
def isPrime ( n ):
if n < 2 :
return false
for x in range(2,n):
if (n % x)==0:
return false
return true
def nthPrime ( n ):
y = 0
z = 1
while y< n:
z+=1
if isPrime( z ):
y+=1
return z
Run Code Online (Sandbox Code Playgroud)
但我在"def"的第9行有这个错误
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 正如您将在下面看到的.我正在编写一个名为Property的类,它可以绑定到任何Serializable类型,从类描述中可以看出.
现在,属性中的值在T编译期间自动绑定为类型.
我想实现一个Class getType()方法,该方法应该Class在运行时返回值的对象,即
Property<String> p = new Property<String>();
Class<String> cl = p.getType();
Run Code Online (Sandbox Code Playgroud)
在这里,我希望cl是String.class.当然有一种方法是:
return value == null ? null : value.getClass();
Run Code Online (Sandbox Code Playgroud)
问题是它不会反映在返回的类型中并返回原始类型的Class对象.理想情况下,我希望它是类型Class<String>
public class Property<T extends Serializable> implements Serializable {
private T value = null ;
private String name = null ;
private boolean dirty = false ;
private Entity parent = null ;
public Class getType() {
// Here I want to determine the type of T that this …Run Code Online (Sandbox Code Playgroud) 我创建了以下内容,但是看起来非常神秘.有没有办法以更Ruby的方式或可理解的方式编写它?
此方法删除数字下方的较低因子.所以,10.high_factors回报[6,7,8,9,10].6可被2整除,因此2被删除.列表中没有大于6的倍数,因此它保持不变.
class Fixnum
def high_factors
# Get the numbers that are not divisible by lower ones below self
list = (2..self).to_a
2.upto(self).each do |i|
((i+1)..self).each { |j| list.delete i if j.is_divisible_by? i }
end
list
end
def is_divisible_by? divisor
self % divisor == 0
end
end
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9.3
我已经完成了C#和C,但是当我来到这个C++项目时,我对这个小代码风格问题感到有些困惑.
我在C++程序中有几个const变量(可能是字符串或数字),我想在一个地方收集它们并从其他类访问它们.
例如,在C#和java中,我们可以有一个资源文件或一个配置文件来存储所有这些数据,或者只是一个单例或静态类.
但是我应该用C++做的最好的方法是什么?我应该将const变量放在头文件中还是创建类似JAVA的类?
我应该在返回之前保存switch语句的结果吗?或者,当我得到它时,我应该在开关中返回值吗?有没有一种方式比另一种更好的风格?
使用临时变量:
public double xMax {
get {
double val = 0.00f;
switch(x_option) {
case 0:
val = priMax;
break;
case 1:
val = rfMax;
break;
case 2:
val = pwMax;
break;
}
return val;
}
}
Run Code Online (Sandbox Code Playgroud)
使用return语句:
public double xMax {
get {
double val = 0.00f;
switch(x_option) {
case 0:
return priMax;
case 1:
return rfMax;
case 2:
return pwMax;
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否有性能差异和/或清理?
当然这应该是有效的Java?我的语法有些错误吗?
return (url != null) ? url : (throw new NotFoundException("No url"));
Run Code Online (Sandbox Code Playgroud)
如果不是,我想我必须这样做:
if(url == null)
throw new NotFoundException("No url");
return url;
Run Code Online (Sandbox Code Playgroud)
谁有更简洁的东西?
假设我在python中编写一个函数,这个函数可以是成功的,也可以是异常.
我应该使用哪一个:
编辑:
谢谢你的回复.在这种情况下,我的意思是询问返回值是否没有进一步的含义,我还是应该做一个return True什么的.
我正在研究的情况是编写thrift服务器端函数,我在犹豫是否使用void或boolean输入服务api.
coding-style ×10
java ×3
c# ×2
python ×2
c++ ×1
closures ×1
const ×1
dictionary ×1
optimization ×1
python-2.7 ×1
readability ×1
refactoring ×1
ruby ×1