lower: 슬라이싱
x[a..b] 는 인덱스가 아니라 포인터와 길이를 만든다. 양쪽 끝을 -- 서로에 대해, 그리고 있는 것에 대해 -- 검사한 뒤에 포인터를 만든다. 유효한 범위의 빈 슬라이스는 괜찮고 끝보다 늦게 시작하는 것은 아니다. 파서가 x[a] 와 x[a..] 를 구분하지 못했다. 둘 다 b 만 있고 c 가 없어서 모양이 같았다. '..' 가 있었으면 노드에 표시한다. 정수 출력이 된다: fizz 12345 -678
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// EXIT:0
|
||||
// OUTPUT:fizz 12345 -678
|
||||
unit printnum;
|
||||
import std.io;
|
||||
import std.fmt;
|
||||
|
||||
fn show(v: i32) -> void {
|
||||
var buf: [16]u8 = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
|
||||
let n: usize = fmt.fmt_i32(buf[..], v);
|
||||
io.print(" ");
|
||||
io.print(buf[0..n]);
|
||||
}
|
||||
|
||||
fn main() -> i32 {
|
||||
io.print("fizz");
|
||||
show(12345);
|
||||
show(0 - 678);
|
||||
io.print("\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user