在python中,我可以这样做:
List=[3, 4]
def Add(x, y):
return x + y
Add(*List) #7
Run Code Online (Sandbox Code Playgroud)
在C#中有没有办法做到这一点或类似的东西?基本上我希望能够将一个参数列表传递给一个任意函数,并将它们作为函数的参数应用,而无需手动解包List并调用显式指定参数的函数.
使用参数编译php有什么区别:
--with-[extension name]
Run Code Online (Sandbox Code Playgroud)
而不是仅将其编译为共享模块并以此方式包含它?有任何性能优势吗?如果没有,你为什么要这样做?
我的测试套件只需要5秒才能启动,这是正常的吗?即使在运行空套件时,它仍然需要很长时间.是因为它在每次运行时都会启动一个新的rails实例吗?如果是这样,无论如何都要坚持下去吗?
例:
rlepidi@rlepidi:~/projects/rails/my_project$ time rake test
/usr/bin/ruby1.9.1 -I"lib:test" "/var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/unit/release_test.rb"
Loaded suite /var/lib/gems/1.9.1/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
Finished in 0.000181867 seconds.
0 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
0% passed
real 0m4.173s
user 0m3.820s
sys 0m0.288s
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这个空测试非常快,但由于某些原因仍然有4秒的开销.我正在使用Test :: Unit和Shoulda.
使用moq,如果我尝试直接模拟一个方法Foo,我得到这个:Invalid verify on a non-virtual (overridable in VB) member.
我的替代方案是模拟IFoo,它摆脱了上述问题,但后来我无法构造它因为Foo没有无参数的构造函数(Constructor arguments cannot be passed for interface mocks.).我能做什么?
如果我有这个代码:
let time = read "2013-02-03 17:00:07.687" :: UTCTime
如何从中提取分钟和秒组件UTCTime?
亚马逊根据虚拟核心和EC2计算单元测量其CPU分配.EC2计算单位定义为:
分配给特定实例的CPU数量以这些EC2计算单位表示.我们使用几个基准测试和测试来管理EC2计算单元的性能一致性和可预测性.一个EC2计算单元提供1.0-1.2 GHz 2007 Opteron或2007 Xeon处理器的等效CPU容量.这也相当于我们原始文档中引用的2006年初1.7 GHz Xeon处理器.
我的问题是,我说有一个"大型实例",附带"4个EC2计算单元(2个虚拟核心,每个2个EC2计算单元)".这是否意味着我在逻辑意义上基本上有4个核心?我想生成4个CPU绑定线程吗?或者计算单位只是衡量功率,我有2个核心?
另外,考虑到服务器的可扩展性,将单个盒子的计算能力加倍并将数据库和服务器托管在同一个盒子上会更好吗?或者我应该有2个单独的,较弱的盒子?
鉴于以下coffeescript代码:
class Animal
constructor: (@name) ->
speak: (things) -> "My name is #{@name} and I like #{things}"
Run Code Online (Sandbox Code Playgroud)
这是生成的:
var Animal = (function() {
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like " + things;
};
return Animal;
})();
Run Code Online (Sandbox Code Playgroud)
但为什么不是这个更惯用的代码生成?
var Animal = function Animal(name) {
this.name = name;
};
Animal.prototype.speak = function(things) {
return "My name is " + this.name + " and I like …Run Code Online (Sandbox Code Playgroud) db:test:*我的rake -T列表中缺少所有rake任务,但我仍然可以正常调用它们.什么可能导致这个?
考虑以下代码:
private readonly Dictionary<Type, Component> _components = new Dictionary<Type, Component>();
public Component this [Type type]
{
get
{
Component component;
_components.TryGetValue(type, out component);
return component;
}
}
public void AddComponent(Component component)
{
_components.Add(component.GetType(), component);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,AddComponent添加到私有_components变量.但测试这种情况的唯一方法是使用索引器.那很好,但为了测试索引器,我也必须打电话AddComponent!
换句话说,在索引器的单元测试中AddComponent,每个测试都必须调用这两种方法.这似乎是在创造不必要的耦合.如果索引器中存在错误,则没有理由让我TestAddComponent失败.
这里的最佳做法是什么?我是否使用反射来获取_components?惩戒?别的什么?
首先,GetInvocationList()不会起作用,因为我希望能够从课外到达他们.我认为它可以用一些反射魔法,这就是我想要弄清楚的.
这就是我现在所拥有的:
fooEventDispatcher.GetType().GetField("FooEvent", BindingFlags.Instance | BindingFlags.NonPublic);
var field = fieldInfo.GetValue(fooEventDispatcher);
Run Code Online (Sandbox Code Playgroud)
我只是不知道该怎么做field.有任何想法吗?
c# ×4
unit-testing ×2
amazon-ec2 ×1
cloud ×1
coffeescript ×1
haskell ×1
javascript ×1
moq ×1
multicore ×1
php ×1
rake ×1
reflection ×1
ruby ×1