본문 바로가기

자료형

(8)
[iOS] 배열, 집합, 튜플 자료형 배열, 집합, 튜플 자료형 Index 1. 배열 (Array) 1.1. 배열 아이템 동적 추가 1.2. 범위 연산자를 이용한 인덱스 참조 2. 집합 (Set) 2.1. 집합의 동적 추가 및 삭제 2.2. 집합 연산 3. 튜플 (Tuple) 4. 딕셔너리 (Dict) 4.1. 딕셔너리 선언과 초기화 4.2. 딕셔너리에 동적 원소 추가 및 삭제 5. 총정리 1. 배열 (Array) 배열은 많은 프로그래밍 언어가 공통적으로 제공하는 자료형이다. 스위프트에서 사용하는 배열의 특징을 정리해본다. 배열에 저장할 아이템의 타입에는 제약이 없으나, 하나의 배열에 저장하는 아이템 타입은 모두 같아야한다. 선언 시 배열에 저장할 아이템 타입을 명확히 정의해야한다. 배열의 크기는 동적으로 확장할 수 있다. 스위프트에서 배열..
[iOS] 변수와 상수, 자료형, 연산자 변수와 상수, 자료형, 연산자 본 문서에는 Swift의 기본 문법에 대하여 공부하며 정리가 필요한 내용들을 기재한다. Index 1. 변수와 상수 2. Data Type 3. 타입 추론 4. 연산자 1. 변수와 상수 변수 | 상수 : 저장할 메모리 주소값을 이름으로 연결해 놓은 것. 변수와 상수는 값을 저장할 수 있다는 공통점이 있지만 ,상수는 한 번 저장된 값을 다른 값으로 변경할 수 없는 반면 변수는 필요에 따라 저장된 값을 다른 값으로 변경할 수 있다. 따라서, 변수에는 프로그램의 실행에 따라 변하는 값을 저장하고, 상수에는 변하지 않는 값을 저장한다. 상수는 실수로 값이 변경되는 일을 막을 수 있고, 값의 성격이 명확히 분류되므로 관리하기에도 용이하다. 변수와 상수 초기화 방법 변수 선언 : va..
집합 그리고 참조 집합은 정렬되지 않은 단순 객체의 묶음이다.집합은 포함된 객체들의 순서나 중복에 상관없이 객체의 묶음 자체를 필요로 할 때 주로 사용한다. 집합끼리의 멤버쉽 테스트 ( in , not in 연산) 를 통해 한 집합이 다른 집합의 부분집합인지 확인할 수 있으며 , 두 집합이 교집합 등 또한 알아낼 수 있다. set을 통해 bri 라는 집합을 선언과 동시에 초기화 하고 멤버쉽 연산 in 을 통해 요소들이 집합에 포함되어 있는지 확인한다. 그 후 , bric 이라는 집합을 만드는데 그 객체들은 bri의 객체들을 copy() 해온다. 그리고 bric에는 'china' 라는 객체를 더한다. issuperset은 확대집합을 의미한다. 당연히 bri 집합은 bric 집합 내에 포함되니 True 값을 반환 그리고 br..
열거형 열거형들은 리스트 , 튜플 , 문자열 같은 것이다, 그러면 열거형이란 무엇이고 열거형에서는 무엇이 중요할까 열거형의 주요 두가지 기능은 멤버쉽 테스트 ( in , not in 연산) 와 열거형의 특정 항목을 얻어올 수 있는 인덱싱 연산 이다. 또한 리스트 , 튜플 , 문자열 의 세 가지 열거형은 슬라이스 연산 기능을 가지고 있는데 , 이것을 열거형의 일부분을 잘라낸 (Slice) 것을 반환하는 연산 , 즉 부분 집합을 반환해 주는 연산이다. shoplist = ['apple','mango','carrot','banana'] name = 'swaroop' # Indexing or 'Subscription' operation # print("Item 0 is ",shoplist[0]) print("Item ..
사전 사전은 이를테면 전화번호부 같은 것인데, 누군가의 이름을 찾으면 그 사람의 연락처를 알수잇는 것과 같다. 이때 그 정보에 접근하고자 사용한 이름에 해당하는 것을 키라고 부르고 , 키를 통해 얻어낸 정보 연락처 등에 해당하는 것을 값이라고 부른다. 전화번호부에 동명이인이 잇을경우 어떤 정보가 맞는 정보인지 제대로 알아낼 수 없듯 , 딕셔너리의 키는 유일한 값을 가져야한다. 딕셔너리의 키는 정적 객체(문자열 등등) 이어야 하지만 , 값으로는 정적 객체나 비정적 객체 모두 사용할 수 있다. 이것을 간단하게 다시 말하면 사전의 키로는 단순 객체만 사용할수 있다고 표현한다. 사전을 정의할 때 키와 값의 쌍은 d = { key1 : value1 , key2 : value2 } 와 같이 지정해준다. 이떄 키와 값은 ..
typedef 선언 이번에는 구조체 정의에 빠질수 없는 typedef 선언에 대해 정리한다. typedef선언은 복잡한 유형의 자료형 선언을 좀더 유연하게 편리하게 해준다. 일종의 자료형 치환 개념으로 보면 이해가 쉽다. typedef선언이 무엇인지 살펴보자 , typedef선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것을 목적으로 한다. 예를 보자.typedef int INT; //int의 또 다른 이름 INT부여 위 선언으로 인해 컴파일러에게 "자료형의 이름 int에 INT라는 이름을 추가로 붙여준다 . "라고 전한다.이렇게 되면 INT num; 은 int num; 과 동일한 선언이 된다. 다음 예제를 살펴보자 3~8행 typedef선언을 통해 자료형을 치환하고 , 12행부터 typedef 선언을 한 자료..
구조체 예제 이번에는 앞서 배운 구조체를 예제를 통해 이해해보자! 이번 예제는 사용자로부터 두 점의 x , y 좌표 정보를 입력받아서 두 점 사이의 거리를 계산하여 출력하는 프로그램을 짜보겠다! 3행에서 구조체를 정의한다 , 11행에서 구조체 변수 pos1과 pos2를 선언한다. 15행과 18행을 통해 각각의 구조체변수의 멤버들의 값을 입력받는다. 22행의 sqrt함수를 사용하기위해 상단부에 math.h헤더 파일을 선언하였다. 값의 결과는 직접 짜서 확인해보자. ( ps , 두 점사이의 거리 계산 공식을 함수로 만들어서 호출하는것이 좀더 깔끔할듯 하다.)
구조체 ( Structure ) 이번 파트에서는 진짜 엄청 중요한 구조체 를 정리할 것이다! 구조체 : 하나 이상의 변수( 포인터 , 배열 포함)들을 묶어서 새로운 자료형을 정의하는 도구 구조체를 이용하면 우리는 새로운 자료형을 정의할 수 있다. 그러면 구조체가 어디에 필요할지 한번 생각해보자 , 예를들어 위치의 정보를 담는 프로그램을 개발한다고 가정해보자. 위치라는 것은 좌표의 개념으로 x , y 축의 좌표들의 정보를 알아야한다. 그러면 다음과 같이 2개의 변수를 선언해야 한다. int xpos; // x좌표int ypos; // y좌표 그런데 이 두 변수들은 서로 독립된 정보를 표현하는 것이 아닌 위치리는 하나의 정보를 표현하기 위해 사용되어야 한다. 즉 , 만일 위치를 출력하는 함수가 있다면 그 함수는 x좌표와 y좌표에 저장된 값..