什么是动态加载模块的TypeScript方式(模块的路径在运行时已知)?我试过这个:
var x = "someplace"
import a = module(x)
Run Code Online (Sandbox Code Playgroud)
但似乎TypeScript编译器希望在编译时将路径视为导入/模块中的字符串:
$ tsc test.ts
/tmp/test.ts(2,19): error TS1003: Identifier expected.
/tmp/test.ts(2,20): error TS1005: ';' expected.
Run Code Online (Sandbox Code Playgroud)
我知道我可以直接使用RequireJS(如果我使用amd模块格式),但这对我来说感觉不对 - 它是一个特定库的解决方案.
我一直在玩仿制药和代表,我发现了一些我不理解的东西.我有非常相似的通用静态方法,一个接受Action<T>,第二个接受Func<T>.现在的问题是:如果我在Func<T>没有显式类型的情况下调用那个接受,编译器就可以了.但是接受Action<T>我的程序的人无法编译(请参阅错误消息的代码).
我的问题是:为什么编译器能够识别返回类型,但是无法识别参数类型?
public interface IMessage
{ }
public class Message : IMessage
{
}
Run Code Online (Sandbox Code Playgroud)
static void HandleAction<TMessage>(Action<TMessage> action)
where TMessage : IMessage
{ }
static void HandleFunction<TMessage>(Func<TMessage> action)
where TMessage : IMessage
{ }
static void A(Message message)
{ }
static Message F()
{
return new Message();
}
static void Main(string[] args)
{
// this one is ok
HandleFunction(F);
// compiler error:
// The type arguments for method
// 'template_test.Program.HandleAction<TMessage>(System.Action<TMessage>)'
// cannot …Run Code Online (Sandbox Code Playgroud) 是否可以使用pytest从代码运行测试?我确实找到了pytest.main,但这只是代码中提供的命令行界面。我想通过代码传递测试类/函数。
在单元测试中,可能是这样的:
from unittest import TestLoader, TestCase, TestResult
class TestMy(TestCase):
def test_silly(self):
assert False
runner = TestLoader()
test_suite = runner.loadTestsFromTestCase(TestMy)
test_result = TestResult()
test_suite.run(test_result)
print(test_result)
Run Code Online (Sandbox Code Playgroud) Rayon非常适合集合的算法并行化,而Faster非常适合 x86 平台上的矢量化 (SIMD),例如Vec<f32>. 我试图将它们结合起来,迭代器似乎并不喜欢彼此。有没有办法将这两个库用于可以从向量化和并行化中受益的算法?像 Faster 示例中的这个:
let lots_of_3s = (&[-123.456f32; 128][..]).iter()
.map(|v| {
9.0 * v.abs().sqrt().sqrt().recip().ceil().sqrt() - 4.0 - 2.0
})
.collect::<Vec<f32>>();
Run Code Online (Sandbox Code Playgroud) c# ×1
delegates ×1
generics ×1
import ×1
module ×1
pytest ×1
python ×1
python-3.x ×1
rayon ×1
rust ×1
simd ×1
typescript ×1
unit-testing ×1