[疑难] 切片错误?

ideage 2008-10-17
char[] s ="abcde%";
char[] b = s[0..$]

这样的代码不能执行! std.format错误.

字符串不能包含百分号.

正在努力想办法.呵呵
ideage 2008-10-17
哈哈,这么快就有办法了!

char[] s ="abcde%%";
char[] b = s[0..$]
assert(b=="abcde%");

多写一个就OK了
ideage 2008-10-17
原来2个代表一个.呵呵
hurd 2008-10-17
我这里可以写2个%就出2个%。 不过用的是tango。

你可以试下
char[] s = r"abcde%";
char[] b = s[0..$] ;
tomqyp 2008-10-17
不是因为tango,是因为你的字符串是用r修饰的
oldrev 2008-10-17
% 居然是转义符?specs 里有说明吗?
hurd 2008-10-17
tomqyp 写道
不是因为tango,是因为你的字符串是用r修饰的

我没加r也是写2个出2个。
hqs7636 2008-10-17
oldrev 写道
% 居然是转义符?specs 里有说明吗?

转义序列中没有这东东
ideage 2008-10-18
其实是切片的错误.或者是phobos的?呵呵.

转义序列开头定义了%%

FormatSpecification:
    '%%'
    '%' Flags Width Precision FormatChar
Colorful 2008-10-18
个人认为这是个 Bug 。
Global site tag (gtag.js) - Google Analytics