我有很少的方法来接受固定大小的集合(例如2,3,5).而我无法确定哪种方式更好:
public void Foo(IEnumerable<Object> objects)
{
if(objects.Count() != 3)
{
throw new Exception()
}
// actions
}
public void Foo(Object objectA, Object objectB, Object objectC)
{
// actions
}
Run Code Online (Sandbox Code Playgroud)
每个选项都有最终的+\ - 吗?
我似乎用以下模式编写了很多方法,似乎应该有更好的方法.这个或更好的做法是否有单线程?
def combine_roster(roster)
rstr = []
roster.each do |r|
rstr << r.user
end
rstr
end
Run Code Online (Sandbox Code Playgroud) 在一个应用程序中的models.py变得很大之后,我尝试将一些类移到子包中。
旧的结构是这样的:
# File: assets/models.py
class Asset(...):
# lots of irrelevant code
# File: widgets/models.py
from assets.models import Asset
class Video(...):
asset = models.ForeignKey(Asset)
Run Code Online (Sandbox Code Playgroud)
这项工作没有问题,因此,我不再赘述该结构的更多细节。
我现在尝试做的是将Asset类移到子模块中。现在的结构如下:
# File: assets/models/__init__.py (of course I deleted the old models.py)
from .assets import Asset
# File: assets/models/assets.py
class Asset(...):
# lots of irrelevant code
# File: widgets/models.py
from assets.models.assets import Asset
class Video(...):
asset = models.ForeignKey(Asset)
Run Code Online (Sandbox Code Playgroud)
不知何故,这是行不通的,而且我无法弄清楚到底是什么引起了麻烦。我得到的错误是这样的:
widgets.video:“asset”与model关联,尚未安装或抽象
有人可以向我解释一下"重构"或"重构"是什么意思吗?
我认为这个主题过于宽泛,无法涵盖每一个细节,但有人可以提供一个简单的术语解释吗?
spriteManager是我拥有的外部类的一个实例,要访问PlayerHelath和selectedFrameOffset,我必须重新开始:spriteManager.多次.
if (spriteManager.PlayerHealth == 3)
spriteManager.selectedFrameOffset = 0;
else if (spriteManager.PlayerHealth == 2)
spriteManager.selectedFrameOffset = 30;
else if (spriteManager.PlayerHealth == 1)
spriteManager.selectedFrameOffset = 60;
else if (spriteManager.PlayerHealth == 0)
spriteManager.selectedFrameOffset = 90;
Run Code Online (Sandbox Code Playgroud)
有没有机会我可以参考spriteManager的使用.只有一次并最终得到这个:代码,以获得更多的可读性?
if (PlayerHealth == 3)
selectedFrameOffset = 0;
else if (PlayerHealth == 2)
selectedFrameOffset = 30;
else if (PlayerHealth == 1)
selectedFrameOffset = 60;
else if (PlayerHealth == 0)
selectedFrameOffset = 90;
Run Code Online (Sandbox Code Playgroud) 我有一个混乱的方法,它生成一个三个字符串的名称.这三个字符串可以为null.我要检查每个可能的组合并根据给定的可用值创建一个字符串.结果名称中的每个变量都没有固定位置/布局,这取决于所有字符串的可用性.
我的方法现在看起来像这样:
private String GetName(string variable, string label, string dimension)
{
string result = String.Empty;
if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}] ({2})", label, dimension, variable);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", label, dimension);
}
else if (!String.IsNullOrEmpty(label) && !String.IsNullOrEmpty(variable))
{
result = String.Format("{0} ({1})", label, variable);
}
else if (!String.IsNullOrEmpty(label))
{
result = String.Format("{0}", label);
}
else if (!String.IsNullOrEmpty(variable) && !String.IsNullOrEmpty(dimension))
{
result = String.Format("{0} [{1}]", variable, dimension);
}
else …Run Code Online (Sandbox Code Playgroud) 我有4个类属性,具有相似的签名,但具有不同的linq属性.我如何创建一个委托或其他东西来清理它?
例如:
public IEnumerable<SelectListItem> DistinctUsers
{
get
{
var list = TraceLogs.OrderBy(x => x.Username).Select(x => x.Username).Distinct();
return (from s in list select new SelectListItem { Value = s, Text = s }
);
}
}
public IEnumerable<SelectListItem> DistinctMethods
{
get
{
var list = TraceLogs.OrderBy(x => x.Method).Select(x => x.Method).Distinct();
return (from s in list select new SelectListItem { Value = s, Text = s }
);
}
}
Run Code Online (Sandbox Code Playgroud) 我在斯卡拉一个新手,并与懒惰的评价玩弄和这个问题跌跌撞撞:如果我想使懒惰的评估VALÇ作品,我写的虚拟变量一和b的声明之前Ç,这我考虑太多样板.我尝试在没有初始初始化的情况下声明a和b lazy val,但编译器抱怨.如果我写的东西:lazy val c = a:Double, b:Int也不起作用.
有没有办法摆脱这些虚拟变量?我能以更优雅的方式重构此代码吗?
var a = 0d; //> a : Double = 0.0
var b = 0; //> b : Int = 0
lazy val c = a / b //> c : Double = <lazy>
//some other code...
a = math.Pi
b = -1
(1 to 10).foreach(x => println(f"$x, ${x * c}%.8s"))
//> 1, -3.14159
//| 2, -6.28318
Run Code Online (Sandbox Code Playgroud) 我最近在应用数值方法课上完成了一个作业集,并且做得很好.但是,我的教授做了一个说明,我不应该使用feval()函数,因为它已经过时了.
我只是想知道我应该使用什么.
这是有问题的代码
%% function file
function E=euler(f,a,b,ya,h)
t=a:h:b;
y(1)=ya;
for i=1:length(t)-1
y(i+1) = y(i) + h*(feval(f,t(i),y(i)));
end
t = t';
y = y';
E=t;
plot(t,y)
xlabel('t')
ylabel('y')
end
%% script file
h = 0.01;
figure(2)
y1=euler(f, a, b, ya, h);
h = 0.001;
figure(3)
y2=euler(f, a, b, ya, h);
h = 0.0001;
figure(4)
y3=euler(f, a, b, ya, h);
Run Code Online (Sandbox Code Playgroud)
如何在不使用feval函数的情况下编写此代码以正确评估Euler函数.
我开始使用Java并尝试找到一种简洁的方法来重构下面的代码,以便我可以将firstName变量设置为字符串并在同一行中获取并将firstNameLength字符串长度设置为整数.
String firstName = "Boris";
int firstNameLength = firstName.length();
Run Code Online (Sandbox Code Playgroud)
我一直在尝试以下代码的变体,但无济于事!
int newAge = String firstName = "Boris".length();
Run Code Online (Sandbox Code Playgroud) refactoring ×10
c# ×5
django ×1
dummy-data ×1
if-statement ×1
int ×1
java ×1
linq ×1
matlab ×1
methods ×1
python ×1
ruby ×1
scala ×1
string ×1
theory ×1