是否更容易将测试文件放在他们测试的源文件旁边(在同一src目录中),还是应该tests创建一个具有镜像层次结构的单独目录?
将它们放在同一个文件夹中似乎可以使维护生活更轻松,但也会挤占源目录.
选项1:具有源和测试的单独文件夹时的目录结构:
- src
+-- item.ts
`-- util
+-- helper.ts
- test
+-- item.test.ts
`-- util
`-- helper.test.ts
Run Code Online (Sandbox Code Playgroud)
选项2:将两种类型的文件放在同一目录中时的目录结构:
- src
+-- item.ts
+-- item.test.ts
`-- util
+-- helper.ts
`-- helper.test.ts
Run Code Online (Sandbox Code Playgroud)
我曾经一直使用选项1,直到尝试angular-cli并在测试文件旁边生成代码文件,如选项2所示,这使我重新思考整个事情.
我有一组int值,我HashSet<int>用以下方式填充a -
var hashSet = new HashSet<int>(myIEnumerable);
Run Code Online (Sandbox Code Playgroud)
假设迭代IEnumerableis O(n),那么以这种方式创建a 的最坏情况复杂度是HashSet<int>多少?
在委托中调用静态方法似乎很简单,因为在调用委托本身时,它们的所有参数都将传递给它们.
但是,当一个实例方法被添加到委托时,'this'参数在委托调用期间似乎被忽略了,所以我只能想象它与委托本身一起保存 - 类似于一个闭包可以用于其他参数.
问:当实例方法传递给委托时,编译器是否会创建闭包,或者是否有不同的机制来完成此操作?