NeuroWhAI의 잡블로그

[C#] Index, Range 구조체와 hat('^') 연산자 본문

개발 및 공부/언어

[C#] Index, Range 구조체와 hat('^') 연산자

NeuroWhAI 2019. 2. 18. 20:48


C# 8에 더 고급스러운 인덱서 사용을 위해 Index, Range 구조체와 새로운 문법을 지원한다고 하네요.

온라인 컴파일러 중에서는 아직 지원하는 걸 못찾아서 예제를 돌려보진 않았습니다 ㅠㅠ

int[] arr = { 1, 2, 3, 4 };
var lastIndex = new Index(1, true);
int lastNum = arr[lastIndex]; // 4
lastNum = arr[^1]; // 위 코드와 동일
int[] arr = { 1, 2, 3, 4 };
Range range = 1..^1;
var sub = arr[range]; // [2, 3]
sub = arr[1..^1]; // 위 코드와 동일
var sub2 = arr[1..]; // [2, 3, 4]
var sub3 = arr[..3]; // [1, 2, 3]
var sub4 = arr[..]; // [1, 2, 3, 4]
string s = "Hello, World!"[..^8]; // "Hello"

뭐... 완전히 파이썬의 그것과 똑같네요.

그나저나 Range를 사용해서 얻은 반환값이 뭔질 모르겠네요.

새로운 배열? 아니면 다른 언어의 슬라이스 같은 무언가..?

공식 문서 설명을 보면 슬라이스 같기는 한데...



Comments