如何在Dart中使用char类型?(打印字母)

Dit*_*iti 8 c dart

我试图通过转换我学校为C编程提供的练习来学习Dart语言.

我们的C池中的第一个练习是编写一个print_alphabet()以小写字母打印字母的函数; 禁止直接打印字母.

在POSIX C中,直接的解决方案是:

#include <unistd.h>

void    print_alphabet(void)
{
    char    c;

    c = 'a';
    while (c <= 'z')
    {
        write(STDOUT_FILENO, &c, 1);
        c++;
    }
}

int     main(void)
{
    print_alphabet();
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,当前版本的Dart(1.1.1)没有一种简单的方法来处理字符.我想出的最远的(对于我的第一个版本)是这样的:

void  print_alphabet()
{
  var c = "a".codeUnits.first;
  var i = 0;

  while (++i <= 26)
  {
    print(c.toString());
    c++;
  }
}

void main() {
  print_alphabet();
}
Run Code Online (Sandbox Code Playgroud)

其中每个字符的ASCII值打印一行,每行一个字符串("97"..."122").不是我想要的......

我正在努力寻找一种正确的方法.但是缺少char类似C语言的类型给我带来了一些困难,作为初学者!

lrn*_*lrn 14

Dart没有字符类型.

要将代码点转换为字符串,请使用String构造函数String.fromCharCode:

int c = "a".codeUnitAt(0);
int end = "z".codeUnitAt(0);
while (c <= end) {
  print(new String.fromCharCode(c));
  c++;
}
Run Code Online (Sandbox Code Playgroud)

对于像这样的简单的东西,如果你不介意换行,我会使用"print"而不是"stdout".

还有:

int char_a = 'a'.codeUnitAt(0);
print(new String.fromCharCodes(new Iterable.generate(26, (x) => char_a + x)));
Run Code Online (Sandbox Code Playgroud)