在Dart中,我使用print()
向控制台写入内容。
是否有可能使用print()
而不自动向输出添加换行符?
您可以使用stdout
:
import "dart:io";
stdout.write("foo");
将foo
打印到控制台,但不会在其后面放置n
。
您也可以使用stderr
。看到:
如何以同步方式在Dart中打印到stderr ?
1。通过使用dart io包
import 'dart:io';
void main() {
for(int r = 0; r < 5; r++){
for(int c = 0; c < r; c++){
stdout.write('Text ');
}
print('');
}
}
Output:
Text
Text Text
Text Text Text
Text Text Text Text
2。通过使用直接print()方法(支持到Dartpad)
void main() {
for(int r = 0; r < 5; r++){
print('Text ' * r);
}
}
Output:
Text
Text Text
Text Text Text
Text Text Text Text
乘0,1,2的例子
void main() {
print('String' * 1);
print('String' * 0);
print('String' * 2);
}
Output:
String
StringString
你不能自定义print()来防止在Dart中打印换行符(如在Python中使用'end'参数)。要在Dart中实现这一点,请使用stdout.write()函数,如
stdout.write("<your_message>");
我在DartPad中构建示例时遇到了一个问题,我想出了一个可以处理各种情况的解决方案。
我的解决方案是创建一个函数,将列表中的变量连接起来,并返回结果字符串。
下面是它如何工作的一个例子:
String buildManyInOneLine(List<dynamic> list) {
var newString = '';
for (var item in list) {
newString += '$item ';
}
return newString;
}
void main() {
var first = 'hey!';
var second = 'u r good?';
List<dynamic> listing = [first, second];
print(buildManyInOneLine(listing));
}
查看一下dcli包中可以使用的echo函数。
import 'package:dcli/dcli.dart';
void main() {
echo("hi", newline: false);
}