프로퍼티 옵저버
변수에 블록 처리를 하여 willSet과 didSet를 선언할 수 있다.
willSet은 설정할 값을 먼저 불러와 처리하고,
didSet은 설정된 값을 불러와 처리할 수 있다.
함수 매개변수
myFunction 함수에 name이라는 매개변수를 선언하고 String을 반환하도록 선언한다.
이건 일반적인 함수, 메소드 정의이다.
40 line에서 myFunction에서 name이라는 String 값을 호출하고 출력해본다.
이후 myFunctionSecond 함수에는 매개변수를 이름을 선언하고 반환 타입은 String 똑같이 선언해본다.
그리고 만약 클래스 내에 myFunctionSecond 함수에서 받고자 하는 변수명이 myName이다?
그러면 42 line 처럼 함수 매개변수를 myName으로 바꿔 String값을 받는다.
myFunctionSecond 함수 내에 매개변수 myName을 받고 aliasing 처리된 name이 파라미터로 받는다.
다음 myFunctionThrid 함수는 파라미터를 사용하는 않는 함수이다.
이전 Swift 문법 포스팅에서 _ (underscore)에 대해 정의했을 것이다.
이름을 정의하지 않은 함수에 String 값만 파라미터를 받아 정의할 수 있다.
단, String 이 아닌 값이 들어가면, 예를 들어 1이 들어가면 에러를 낼 것이다. 아스키코드를 인식할 줄 알았는데 그건 아니다.
제네릭
강의에서 제네릭은 어떠한 자료형이든지 받아올 수 있다라고 정의하였다.
58 line에 MyArray라는 구조체에 SomeElement라는 자료형을 선언한다.
멤버 변수 elements를 선언한다. 제네릭으로 준 SomeElement를 넣어줘 제네릭을 담은 빈 배열이라고 보면 된다.
그리고 SomeElement는 자료형이 없다고 보면 된다.
init() 생성자 메소드를 선언하여 SomeElement를 담고 있는 elements가 들어오게 되면 self를 통해 elements 를 할당해줘 초기화한다.
일종의 Java에서 다루는 get, set 메소드에 set이라 보면 된다.
그 위에 Friend라는 구조체에 이름을 가지도록 name 멤버 String 변수를 선언한다.
이후 mySomeArray 라는 MyArray를 선언하는데 안에 어떤 것이든지 넣을 수 있다. 배열이긴 하지만 어떤 것도 넣을 수 있다.
71, 74 line에 Int, String 배열을 인자로 넣어 선언하고 출력한 결과, 콘솔 맨 하단에서 2,3 번째 라인이 잘 출력된 것을 볼 수 있다.
다음으로 아래 친구들을 선언해보았다.
그리고 myFriendArray라는 MyArray를 선언하고 출력해보았다.
콘솔 맨 아래에 내용이 조금 이상하게 출력되는데 구성을 보면 안에 object로 구성되어 있다. 그래서 예상과 조금 다른 결과가 나왔다.
name이라는 key와 철수, 영희, 수진이라는 value들을 볼 수 있다.
'iOS > Swift 문법' 카테고리의 다른 글
Swift 기초 문법 - 클로저 (2) (1) | 2022.09.29 |
---|---|
Swift 기초 문법 - 클로저 (1) (0) | 2022.09.28 |
Swift 기초 문법 - for 반복문, 변수 unwrapping, struct와 class 차이 (0) | 2022.09.02 |
Swift 기초 문법 - 조건문, forEach 반복문, enum case (2) | 2022.09.01 |