我试图通过转换我学校为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)
| 归档时间: |
|
| 查看次数: |
5699 次 |
| 最近记录: |