yntcsb 发表于 2013-2-5 02:22:13

Stdout使用

Tango库Stdout的使用
Stdout是tango库中标准的执行格式化输出到控制台功能的方法,相当于java语言中的System.out.Printf或C语言中的Printf。
Stdout在tango.io.Stdout模块中预定义,它支持的类型有很宽的范围,把原来的表示形式转换成文本形式输出到控制台。它支持转换的类型有整数、浮点数、UTF8、UTF16、UTF32等等。
基本用法
像大多数库一样,Stdout可以接受多个参数,返回一些连锁引用,如下例:

importtango.io.Stdout;void main (){//在控制台输出”Green”。Stdout(“Green”).newline;//在控制台输出”100个绿色的玻璃瓶子”,使用两个参数Stdout(100)(“个绿色的玻璃瓶子”).newline;}在上例中,“.newline”的意思是在行末添加一个新行符,相当于传统用法的“\n”。也可以使用“.newline”的一个变体形式“.formatln”,它也含有添加一个新行符的意思。
   Stdout.formatln (100)(“个绿色的玻璃瓶子”);
如果你的当前输出不想换行,可以用“.flush”或简单的在后面添加一个空括号“()”:
Stdout(100)(“个绿色的玻璃瓶子”).flush;或Stdout(100)(“个绿色的玻璃瓶子”)();或Stdout.format(100)(“个绿色的玻璃瓶子”);Stdout还支持方便的变量参数(Vararg)型调用Stdout (“{}个绿色的玻璃瓶子”,100).newline;这里的“{}”(一对空大括号)是一个变量,叫做format item(格式项),它将被替换成后面的参数“100”。“{}”里可以有三个任意选择的三个元素用以详细说明要把替换的参数转换成什么样子,形式为
“[索引][,对齐形式][:格式字符串]”
“索引”指明用后面的哪个参数进行替换(从0数起),
char[] a=”绿色的玻璃瓶子”;char[] b=”靠在桌子上”;int c=50;//输出“50个绿色的玻璃瓶子靠在桌子上”Stdout (“{2}个{0}{1}”, a, b ,c).newline;//输出“绿色的玻璃瓶子个50靠在桌子上”,即按参数排列//顺序输出Stdout (“{}个{}{}”, a, b ,c).newline;“对齐形式”是一个有符号数,如果是正数,就右对齐,如果是负数就左对齐(注意:单独使用这一部分时,前面要加“,”。)。如下例:
int a=100;Stdout.format(”a是|{,+10}|”,a).newline;//输出”a是|       100|”Stdout.format(”a是|{,-10}|”,a).newline;//输出”a是|100       |”第三个部分是格式字符串部分,支持如下格式

格式   描述
d   十进制格式,这是默认的格式
x   小写十六进制格式
X   大写十六进制格式
o,O   八进制格式
如表,每个选项把一个数字转换为相应格式的数字字面值字符串表示出来。如果提供的数字为阿拉伯数字格式,转换后也为阿拉伯数字串;如果提供的数字是十六进制字母表示的数,转换后的十六进制数也用这种格式表示;如果不是数字而是字符串,它直接输出相应的字符串。可以在格式后添加一个正数表示用最少几位数字来描述给定的数字。如下例:
module sl;import tango.io.Stdout; void main () {   int a=100;   char []b="中国人";   //用最小4位十进制格式显示变量a Stdout.format("a的十进制格式是|{:d4}|",a).newline; //用最少8位十六进制格式显示变量a Stdout.format("a的十六进制格式是{:x8}",a).newline; //用最少16位十六进制格式显示变量a Stdout.format("a的16位十六进制格式是 {:X16}",a).newline;//用最少8位八进制格式显示变量a Stdout.format("a的八进制格式是{:o8}",a).newline;//用最少16位八进制格式显示变量a Stdout.format("a的八进制格式是{:O16}",a).newline;//字符串变量直接输出,即格式部分对它不起限定作用 Stdout.format("b的十六进制格式是|{0,-10:x7}|",b).newline;   }
页: [1]
查看完整版本: Stdout使用