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

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

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

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

 #include  void print_alphabet(void) { char c; c = 'a'; while (c <= 'z') { write(STDOUT_FILENO, &c, 1); c++; } } int main(void) { print_alphabet(); return (0); } 

但是,据我所知,当前版本的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(); } 

其中每个字符的ASCII值打印为一行(“97”……“122”)。 不是我想要的……

我正在努力寻找一种正确的方法。 但是缺少像C这样的char类型给我带来了一些困难,作为一个初学者!

Dart没有字符类型。

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

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

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

还有:

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

在我最后确定我的post并重新描述我的问题标题时,由于这个关于stdout问题 ,我不再咆哮错误的树了 。

似乎编写字符的一种正确方法是使用dart:io库中的stdout.writeCharCode

 import 'dart:io'; void ft_print_alphabet() { var c = "a".codeUnits.first; while (c <= "z".codeUnits.first) stdout.writeCharCode(c++); } void main() { ft_print_alphabet(); } 

我仍然不知道如何操纵字符类型,但至少我可以打印它们。