C# 8.0에서의 Index.
1. "^"의 개념. (Index fromEnd 의 단축 표기법)
아래의 배열이 있다고 가정했을 때..
int a = [1,2,3,4,5,6,7];
int b = a[^2];
^ => 뒤에서 부터 순서를 센다. 단 이때는 제로 베이스가 아님
즉 실행하면 b = 6 이 나온다.
2. Index 객체
c# 8.0부터는 Index란 개념이 생겼다.
역시 객체라 아래와 같이 선언이 가능하다
Index idx = new Index(2);
ex)
string a = "abcdefg";
int idx1 = 2;
Index idx2 = new Index(2);
char c1 = a[idx1];
char c2 = a[idx2];
둘 다 같은 결과가 나온다.
c1 = c
c2 = c
그럼 Index를 쓰는 이유가 뭘까? Index 객체는 int로 인덱스를 지정했을 때 값만 보관하는 것과는 달리 값, 방향성을 보관한다.
* Index 선언 시 두 번째 인자를 true로 주면 ^ 와 같이 뒤에서 순서를 센다.
ex ) new Index(2, fromEnd : true)
Index 객체 만드는 방법
1. new 사용
Index indx1 = new Index(3);
2. 정적 메소드 사용
Index indx 1= Index.FromStart(3);
3. 단축 표기법 사용
Index idx1 = 3;
Index idx2 = ^3;
실전에서는 아무래도 3번이 가장 많이 쓰이지 않을까? ㅎㅎ
3. Range
c# 8.0부터 Range 를 사용할수 있는데 사용법은 다음과 같다.
* 배열에 ".." 을 사용할수 있다.
int[] arr = {1,2,3,4,5,6} 이란 배열이 있다고 가정하면..
Ex )
int[] arr2 = arr[1..^2];
=> 2,3,4,5
Ex2)
Range r1 = new Range(new Index(1), new (1,true));
int [] arr2 = arr[r1];
=> 2,3,4,5,6
'게임 > 프로그래밍' 카테고리의 다른 글
New Syntax in C# 8.0 (0) | 2020.06.01 |
---|---|
C# 8.0 Switch Expression (0) | 2020.06.01 |
2017 언리얼 서밋 프리미엄 (0) | 2017.10.31 |
자신의 컴퓨터가 듀얼 코어 이상이라면... (0) | 2009.08.26 |
[STL] Vector 정렬.. (0) | 2009.07.22 |