3

mysql-nativeその return Variantデータ型を使用します。などintの標準型に変換する必要があります。string

D にはstd.convstd.variantありますが、具体化のためのメソッドもあります。

getcoercetoStringおよびto(from )の違いがわかりませんstd.conv

convertsToまた、 return は非常に奇妙に聞こえboolます。その名前から、私はそれがコンベンションを行うべきだと思っていました。私見isConvertableはそれのより適切な名前です。

4

1 に答える 1

4

Variant型から値を取得するには、次の 3 つの方法があります。

  • Variant.peek!T:Variantオブジェクトが現在保持している値の型が のT場合、その値へのポインターが返されます。異なる型の値を保持している場合は、代わりに null を返します。

    Variant v = "42";
    string* ptr = v.peek!string;
    assert(ptr !is null && *ptr == "42");
    
  • Variant.get!T:Variantオブジェクトが現在保持している値の型がTの場合、その値を返します。それ以外の場合は、 aVariantExceptionがスローされます。

    Variant v = "42";
    assertThrown!VariantException(v.get!int);
    assertNotThrown!VariantException(v.get!string);
    
  • Variant.coerce!T: オブジェクトが現在保持している値をVariant、明示的に type に変換して返しますT。値を type に変換できない場合はT、 anExceptionがスローされます。

    Variant v = "42";
    string s = v.coerce!string;
    assert(s == "42");
    int i = v.coerce!int;
    assert(i == 42);
    
于 2017-02-07T07:40:26.863 に答える