string - 将字符串乘以整数返回整数?

标签 string d

所以我试图用 D 做一个星号金字塔。
首先,我注意到串联似乎是不可能的。写出类似 writeln("foo" + "bar") 的内容会给你一个语法错误。所以相反,我尝试像在 python 中那样将字符串相乘,这不适用于双引号字符串,但是使用单引号字符串会发生一些奇怪的事情。

如果你输入这个

import std.stdio;
void main()
{
    foreach (i; 0 .. 10)
    {
        writeln(i*'0');
    }
}

它会返回一堆整数。
谁能解释为什么会发生这种情况?
让我知道如何连接字符串也将非常有帮助。

谢谢!

最佳答案

'0' 不是字符串,它是一个字符,它使用 ASCII 编码。该数字与编码的整数 id 相乘。例如,ASCII 的“A”的编码是 65。

import std.stdio;
int main()
{
        writeln( cast(int)'A' );
        writeln( 10 * 'A' );
        return 0;
}

该程序将打印 65 和 650,因为在这两种情况下字符都被转换为整数。

要解决最初的连接问题,您可以使用“~”运算符连接两个数组,或使用“array1 ~= array2”在一个语句中将 array2 附加到 array1 上。

关于string - 将字符串乘以整数返回整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23210349/

相关文章:

d - 是否可以在不运行它们的情况下编译 unittest 并为特定模块显式运行 unittest?

string - 如何处理字符串数组?

python - 在运行时删除 Python 中的反斜杠

Ruby:将字符串转换为字符数组?

stream - D:那溪流呢?

d - 从姐妹文件夹导入 D 中的模块?

arrays - 如何为可变大小的数组创建固定的结构头

d - 我在哪里可以阅读更多关于 D 的类访问修饰符的信息?

string - 将字符串分解为最大长度子字符串列表的 Ansible 最佳实践?

android - 如何在 Android 中使用 XML 引用库中另一个包中的字符串?