gpt4 book ai didi

types - to!string() 和 cast(string) 有什么区别

转载 作者:行者123 更新时间:2023-12-01 10:09:19 30 4
gpt4 key购买 nike

在D中,以下有什么区别:

import std.conv;
import std.stdio;

void main() {
writeln(to!int(5.0));
}

import std.stdio;

void main() {
writeln(cast(int) 5.0);
}

最佳答案

to!T 处理比强制转换范围更广的转换。

例如,int i = 5; writeln(cast(string)i); 是一个错误——没有从 int 到 string 的有效转换。但是 int i = 5; writeln(i.to!string); 工作并打印 5

一般来说,转换几乎只是用不同的类型重新解释相同的字节,除了一些异常(exception):整数和浮点类型之间的转换(int → float 产生等价物;float → int 截断),类类型之间的转换(使用运行时类型信息来确保转换有效;否则会产生 null),从类转换为接口(interface)(这会给你一个指向适当转发函数的假对象的指针——这很奇怪)。

to 尝试进行更多的逻辑转换,最常见的是字符串之间的转换。

关于types - to!string() 和 cast(string) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52807002/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com