본문 바로가기

Swift랑 친해지기/Swift문법정리62

(Swift) Class (클래스) 간단히 정리 클래스 사용하는 이유 프로퍼티(직역해석: 성질 /내부변수), 메서드(방식/내부함수)으로 구조화된 기능을 가져 하나의 새로운 사용자 데이터 타입을 만들어줌 class 클래스 이름{ 프로퍼티, 메소드 } //프로퍼티는 클래스 안에 내부 변수 //메소드는 클래스 내부 함수라고 생각 클래스도 구조체와 마찬가지로 초기화가 끝나는 시점에 모든 프로퍼티가 기본값을 가지고 있어야함 인스턴스 내에 기본값이 존재하지 않는 경우 초기화에 실패하고 인스턴스가 생성되지 않음 클래스에서는 구조체와 다르게 Memberwise Initializers를 제공 하지 않기 때문에 위와 같이 선언과 동시에 값을 지정해줘야함 또는 옵셔널 타입에 변수로 지정한다 (상수 에러) 또는 init함수에서 값을 설정 2022. 9. 18.
[Swift] 구조체 (간단히 정리) struct 구조체 쓰는 이유 : 프로퍼티(직역해석: 성질), 메서드(방식)으로 구조화된 기능을 가져 하나의 새로운 사용자 데이터 타입을 만들어줌 상속이 불가능함 구조체의 인스턴스는 값타입임 (변수를 할당하면 스택영역에 저장, 복사해도 원본에 영향을 안줌, 힙영역 사용안하고 래퍼런스 카운팅이 필요없음) 생성자를 구현하지 않아도 default initalizer 사용할 수 있음 struct 구조체이름 { 프로퍼티 + 메서드 } //구조체 첫글자는 대문자 User라는 구조체를 만들었음 이 구조체를 사용하려면 인스턴스를 생성해야함 인스턴스를 생성한다는 뜻은 구조체를 쓰기 위해 메모리에 생성하는 것을 말함 구조체에서 정의한 nickName,age의 프로퍼티 값을 넣을 수 있는 생성자의 매개변수가 자동생성됨 생성.. 2022. 9. 17.
[Swift] 옵셔널 해제 간단 정리 옵셔널 해제 2가지 1. 명시적 해제 강제 해제 비강제 해제 (옵셔널 바인딩) 2. 묵시적 해제 컴파일러에 의한 자동 해제 옵셔널의 묵시적 해제 1-1) 강제 해제 - 변수 뒤에 ! - 만약 !로 옵셔널 해제한 변수에 값이 없을 경우 crash 발생함 - 최대한 쓰지말것 1-2) 옵셔널 바인딩 - if ,guard 문으로 안전하게 제거 할 수 있음 -메커니즘- =을 기준으로 우측 (Optional Expression)을 평가한뒤 값이 리턴이 되면 좌측 numbers (임시상수)에 저장이 됨 차이점은 if문은 옵셔널을 제거한 상수나 변수를 if문블록 안에서만 사용가능하지만, guard문은 함수내부에서도 사용가능 그래서 guard를 주로 사용함 2-1)컴파일러에 의한 자동 해제 - 옵셔널값은 비교연산자를 통.. 2022. 9. 17.
[Swift] 코딩테스트에서 자주사용하는 컬렉션 타입 메소드 코딩테스트에서 자주 사용하는 컬렉션 타입 메소드들 컬렉션 타입 - 데이터들의 집합, 묶음 Swift 컬렉션 타입 3가지 1. Array - 데이터 타입의 값들을 순서대로 저장하는 리스트 빈배열만드는법 .append를 이용하여 추가 인덱스를 통해 배열의 요소에 접근할 수 있음 insert를 통해 원하는 인덱스에 원하는 데이터 삽입 remove메소드를 통해 원하는 인덱스 제거 2. Dictionary - 순서업이 키(Key)와 값(value) 한 쌍으로 데이터를 저장하는 컬렉션 타입\ 빈 딕셔너리 생성 딕셔너리에 키와 값 넣는법 removeValue메소드를 통해 key값을 입력하여 제거 3.Set - 같은 데이터 타입의 값을 순서없이 저장하는 리스트 insert를 이용하여 값 추가 remove를 통해 제거 2022. 9. 15.