C# 11: Span/ReadOnlySpan 패턴 매칭
지금까지 문자열(string)에 대한 패턴 매칭은 널리 사용되어 왔었는데,
Span<char>과 ReadOnlySpan<char> 타입에 대해서는 패턴 매칭이 지원되지 않았었다.
Span<char>과 ReadOnlySpan<char>은 문자열보다 성능(performance)이 더 좋기 때문에,
.NET에서 string 대신 Span/ReadOnlySpan 을 사용하도록 많은 API들이 추가되고 있다.
이러한 맥락에서 Span<char>과 ReadOnlySpan<char>를 보다 널리 사용되도록 하기 위해,
C# 11에서는 Span<char>과 ReadOnlySpan<char> 타입을 상수와 비교하는 패턴 매칭을 지원하게 되었다.
아래 예제는 ReadOnlySpan<char> 파라미터를 is 혹은 == 연산자를 사용하여 문자열 상수와 비교하거나,
switch expression 패턴을 사용하여 여러 문자열 리터럴들과 비교하는 것을 예시한 것이다.
예제
bool CheckGroup(ReadOnlySpan<char> s)
{
// is 비교
if (s is "admin") return true;
// == 연산자로 비교
if (s == "supervisor") return true;
// switch expression 패턴
bool pass = s switch
{
"IT" => true,
"HR" => true,
_ => false
};
return pass;
}
// 테스트
ReadOnlySpan<char> s = "IT".AsSpan();
bool ok = CheckGroup(s);
Console.WriteLine(ok);
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.