728x90
반응형
Study about tuple
Tuple
- 여러 필드를 담을 수 있는 구조체로 형식의 이름을 갖지 않고 임시적으로 사용할 복합 데이터 형식 선언에 적합하다
- 튜플은 명명되지 않은 선언 즉 필드 이름을 지정하지 않은 선언과 명명된 선언 다 가능
public static void Main()
{
var tuple = (123, 789);
Console.WriteLine($"{tuple.Item1}, {tuple.Item2}");
var tuple2 = (Name: "Hugh", Age:23);
Console.WriteLine($"{tuple2.Name},{tuple2.Age}");
}
- 컴파일러가 튜플의 모양을 보고 직접 형식을 결정하도록 var를 이용하여 선언한다.
- 튜플은 괄호 사이에 두 개 이상의 필드를 지정하면된다.
public static void Main()
{
var tuple = (Name: "Hugh", Age:23);
// 모든 필드 분해
var(name, age) = tuple;
Console.WriteLine($"{name},{age}");
// 일부만 분해
var(name2, _) = tuple;
Console.WriteLine($"{name2}");
}
- 이런식으로 튜플을 분해할수있다.
- 모든 필드를 분해하지 않을수도 있다
var unnamed = ("SuperMan", 9999);
var named = (Name: "Hugh", Age: 23);
named = unnamed;
Console.WritedLine($"{named.Name}, {named.Age}");
named = ("WonderWoman", 8888);
unnmaed = named;
Console.WriteLine($"{unnamed.Name}, {unnamed.Age}");
- unnamed 와 named는 필드에 할당된 type이 string int 로 같다
- 이럴경우 명명되지 않은 튜플과 명명된 튜플 사이의 할당이 가능하다.
- System.ValueType 추가 패키지를 받으면 Tuple 기능 사용 가능
728x90
반응형