Types 你和我有什么区别!string()和cast(string)
在D中,以下各项之间的区别是什么:Types 你和我有什么区别!string()和cast(string),types,casting,d,Types,Casting,D,在D中,以下各项之间的区别是什么: import std.conv; import std.stdio; void main() { writeln(to!int(5.0)); } 及 to!T处理的转换范围比cast大得多 例如,inti=5;writeln(cast(string)i)是一个错误--从int到string没有有效的强制转换。但inti=5;writeln(i.to!字符串)工作并打印5 一般来说,强制转换只是用不同的类型重新解释相同的字节,只有少数例外:在整数和浮
import std.conv;
import std.stdio;
void main() {
writeln(to!int(5.0));
}
及
to!T
处理的转换范围比cast大得多
例如,inti=5;writeln(cast(string)i)代码>是一个错误--从int到string没有有效的强制转换。但inti=5;writeln(i.to!字符串)代码>工作并打印5
一般来说,强制转换只是用不同的类型重新解释相同的字节,只有少数例外:在整数和浮点类型(int)之间强制转换→ float产生等价物;float→ int截断),在类类型之间进行强制转换(使用运行时类型信息确保强制转换有效;否则将产生null),从类强制转换到接口(这会给您一个指向适当转发函数的伪对象的指针,这很奇怪)
to
尝试进行更多的逻辑转换,最常见的是与字符串之间的转换
import std.stdio;
void main() {
writeln(cast(int) 5.0);
}