gtkcoding博客下载地址.

蓝奏云:在这里.
最快!学习gtkd.结合360极速浏览器的谷哥自动翻译.

d语言的下转

if (Bar bar = cast(Bar)foo)
	bar.value.writeln;
else if (Baz baz = cast(Baz)foo)//Bar,Baz为foo的子类.
	baz.name.writeln;

d语言的作者说:
D的最大优势是我们坚持不懈的坚持..说得很好.

按浮点解析json

float asFloating(JSONValue value)
{
    return (value.type == JSONType.integer) ?
        cast(float)value.integer : value.floating;
}

auto json = parseJSON(`{"num":123}`);
writefln("num is: %s", json["num"].asFloating);
json = parseJSON(`{"num":123.456}`);
writefln("num is: %s", json["num"].asFloating);

d的抽象继承如下:

abstract class Foo {
    void writeProp();
}

class Bar : Foo
{
    float value;
    this(float t_value) { value = t_value; }
    override void writeProp() {value.writeln;}
}//在自己内部写

class Baz : Foo
{
    string name;
    this(string t_name) { name = t_name; }
    override void writeProp() {name.writeln;}
}//内部

void main()
{
    Foo foo = new Bar(10);
    foo.writeProp;
    foo.writeln;//都不用变化.
}
posted @ 2019-11-06 09:43  zjh6  阅读(13)  评论(0)    收藏  举报  来源