静态检查有很多信息Contract.ForAll
只有有限或没有支持.
我做了很多实验,发现它可以用于:
Contract.ForAll(items, i => i != null)
Contract.ForAll(items, p)
哪里p
是类型Predicate<T>
它不能用于:
我的问题是:
ForAll
可以使用?Contract.ForAll(items, i => i != null)
验证,以后在代码中从列表中取出一个项目(即通过索引)时,该项目不为空?这是完整的测试代码:
public sealed class Test
{
public bool Field;
public static Predicate<Test> Predicate;
[Pure]
public bool Property
{
get { return Field; }
}
[Pure]
public static bool Method(Test t)
{
return t.Field;
}
[Pure]
public bool InstanceMethod()
{
return Field; …
Run Code Online (Sandbox Code Playgroud) 我想使用phobos.etc.c.sqlite3
绑定.使用C编译器编译sqlite3.c以生成.o文件,然后将其与我的程序链接.
我应该使用哪个C编译器,以及哪些编译器标志?是否可以在一步中将sqlite3.o与DMD链接,而无需单独调用链接器?
或者还有其他更简单的方法吗?
答:如何在64位Ubuntu上使用D进行Sqlite
安装sqlite dev sudo apt-get install libsqlite3-dev
编 dmd test.d -L-ldl -L/usr/lib/x86_64-linux-gnu/libsqlite3.a
test.d
import std.stdio, std.string, etc.c.sqlite3;
void main () {
sqlite3* db;
auto ret = sqlite3_open (toStringz("mydb.s3db"), &db);
writeln (ret);
}
Run Code Online (Sandbox Code Playgroud)
由于sqlite3链接问题,需要-ldl开关