在Dart中不带换行符的print()

  • 本文关键字:print 换行符 Dart dart
  • 更新时间 :
  • 英文 :


在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);
}

最新更新