swift에서 튜플이라는 자료구조형을 지원하는 것은 알고는 있었지만,
사실 나는 코딩할때 튜플을 잘 사용하지 않았다.
실무에서 주 사용 언어가 objective-c여서 그런가....
튜플이라는 자료구조형 존재 자체를 잊고 살았던 것 같다.
그런데 이번에 꼼꼼한 재은씨의 스위프트 문법편을 읽으며 튜플이 이런 자료구조형이었구나! 라고 새롭게 느끼게 되어
멘토님의 과제도 할겸 튜플에 대해 좀더 파고들어보기로 했다.
그렇다면 먼저 그놈의 튜플이란 과연 무엇인가!
파이썬에서도 지원하는 집단 자료구조형으로
보통 배열과 많이 비교되곤 한다.
일단 배열과 튜플의 가장 큰 차이점은
튜플은 선언되고 나면 값을 추가, 삭제할 수 없다.
그리고 대괄호가 아닌 소괄호를 사용한다는 점~!
// 여러타입 저장 가능
let tuple1 = (1, "a")
// 점으로 인덱스 연결
let tuple2: (Int, String) = (1, "abc")
print(tuple2.0) // 1
print(tuple2.1) // "abc"
// 인덱스 바인딩
let tuple3: (name: "hogang", age: 32)
print(tuple3.name) // "hogang"
print(tuple3.age) // 32
튜플을 사용하면 별도의 자료형 객체를 만들지 않고도 바로 전달할 수 있어 편리하다!
func myInformation() -> (String, Int, float) {
return ("hogang", 32, 187.7)
}
let (name, age, height) = myInformation()
// 필요 없는 아이템이 발생한다면?! -> 언더바로 대체 가능
let (name, age, _) = myInformation()
final class Person {
public String name;
public int age;
public float height;
public Person(String name, int age, float height) {
this.name = name
this.age = age
this.height = height
}
}
class Main {
public static Person getMyInformation() {
return new Person("hogang", 32, 187.7);
}
public static void main(String[] args) {
Person person = getMyInformation()
System.out.println(person.name); // "hogang"
System.out.println(person.age); // 32
System.out.println(person.height); // 187.7
}
}
import java.util.Arrays;
import java.util.List;
public class Person {
public static void main(String[] args) {
List<Object> person = method1();
System.out.println(person); // ["hogang", 32, 187.7]
}
private static List<Object> getMyInformation() {
String name = "hogang";
int age = 32;
float height = 187.7
return Arrays.asList(name, age, height);
}
}
struct values
{
int a;
int b;
};
values func(int a, int b)
{
values v;
v.a = a;
v.b = b;
return v;
}
int main()
{
values v;
v = func(1,2);
printf("%d\n",v.a); // 1
printf("%d\n",v.b); // 2
return 0;
}
void calc(int, int, int *, int *);
void calc(int a, int b, int *add, int *mul)
{
*add = a + b;
*mul = a * b;
return 0
}
int main() {
int a = 2, b = 5;
int add, mul;
calc(a, b, &add, &mul);
printf("%d + %d = %d\n",a, b, add); // 2 + 5 = 7
printf("%d * %d = %d\n",a, b, mul); // 2 * 5 = 10
}