【问题标题】:Type as a String类型为字符串
【发布时间】:2013-10-15 09:13:17
【问题描述】:

如何将类型转换为字符串?

我认为这样的事情应该可以工作

import std.stdio: writeln;
import std.conv: to;
writeln(to!string(int));

更新:我在http://dlang.org/phobos/std_traits.html#.fullyQualifiedName找到它

我猜 D 中所有对类型进行操作的逻辑都是作为模板参数给出的,对吧?

【问题讨论】:

  • 是的,类型上的所有逻辑都将使用模板参数完成。除了检查运行时多态类型,如动态强制转换或可变参数函数(与更常见的可变参数模板相反),这是通过 TypeInfo 实例完成的。您可以使用 typeid 属性获取 typeinfo,但它并不像实际拥有类型那样有用,这只能使用 typeof(var) 或模板参数,或者实际上是一种模板参数的 typetuples。跨度>

标签: string reflection type-conversion d compile-time


【解决方案1】:
  1. int 已经是一个类型。你不需要typeof它。

  2. 您可以使用.stringof 属性来获取字符串表示形式。 http://ideone.com/T4yYmo

    writeln(int.stringof);
    

【讨论】:

  • 啊哈!那么首选的方式是什么? stringofto!string?
  • 我想你已经发现, to!string 不是一个选项。 stringof 是一个编译器属性,它请求符号字符串代表。它在打印模板参数tipes T.stringof 时很有用,在您的情况下为writeln("int");就足够了:)
猜你喜欢
  • 1970-01-01
  • 2015-07-23
  • 2021-03-30
  • 2019-11-21
  • 2021-08-10
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
相关资源
最近更新 更多