본문 바로가기

iOS/Swift26

[Swift] 매개변수 vs 전달인자 (feat. 아규먼트 레이블) 머리말 함수에서 사용되는 여러 용어 함수를 사용할 때면 매개변수, 전달인자, 인수, 아규먼트 레이블, 파라미터(패러미터), 아규먼트 등 여러 용어가 혼용하여 쓰인다. 특히나 Swift에서는 "아규먼트 레이블(argument label)"이라는 새로운 개념이 있어서 각 용어를 제대로 구분할 필요가 있다. 따라서 관련 용어를 확실하게 구분하기 위해 이번 포스팅을 하게 되었다 참고 자료 Functions | Documentation 함수 (Functions) - Swift 용어 정리 매개변수(parameter) 함수를 '정의'할 때 쓰이는 변수의 이름 그 자체 이름에 '변수'가 들어간 것을 알 수 있듯이 변수이다 하지만 엄밀히 말하면 Swift에서는 매개변수가 변수가 아니라 상수이다. Swift에서는 매개변수.. 2023. 7. 19.
[Swift] 집합(Set)의 메서드 머리말 공식 문서 링크 Sets - Collection Types 글을 쓰게 된 이유 1. 알고리즘 문제에서 사용하게 된 집합(Set)의 메서드 이번에 푼 알고리즘 문제에서 집합에 관련한 문제가 나왔는데, 컬렉션 타입 중에 집합은 거의 사용해 본 적이 없어서 이번에 정리를 하게 되었다. 2. 알고리즘 링크 코딩테스트 연습 - [1차] 뉴스 클러스터링 | 프로그래머스 스쿨 집합의 연산 동작 연산 동작의 특징은 아래와 같이 메서드와 파라미터를 이용해 구하며, 새로운 집합을 생성하는 것이다. 1. 교집합(Intersection) 두 집합의 공통된 값을 가지는 집합 2. 대칭차집합(Symmetric Difference) 두 집합을 더하되, 교집합을 제외한 집합 3. 합집합(Union) 두 집합의 모든 값을 더한.. 2023. 6. 14.
[Swift] 프로퍼티(Properties) 보호되어 있는 글 입니다. 2023. 5. 21.
클래스와 구조체 차이 보호되어 있는 글 입니다. 2023. 5. 18.
[Swift] 구조체와 클래스(Structures and Classes) 머리말 참고 자료 Swift 영문 공식 문서 - Structures and Classes Structures and Classes | Documentation Swift 한글 공식 문서 - 구조체와 클래스(Structures and Classes) 구조체와 클래스 (Structures and Classes) - Swift 공통점과 차이점 차이점 구조체 클래스 ⭐️ 타입 Value Type Reference Type 메모리 저장 - in Stack - Stack Frame이 종료 시 자동 제거됨 - in Heap - ARC에 의해 자동으로 메모리 관리 인스턴스의 저장 모든 데이터 in Stack - 인스턴스 데이터 in Heap - 변수 in Stack 복사본 생성 값을 할당할 때마다 새로운 메모리 공간을.. 2023. 5. 17.
Swift) 값이 없는 듯 있는 nil의 정체 (feat. 옵셔널은 열거형이다) 목차 머리말 옵셔널을 공부하던 중 알게 된 nil의 정체 Optional에 대한 강의를 듣다가 아주 충격적인(?) 말을 듣게 되었다. Swift의 nil은 C언어의 null처럼 단순히 값이 없는 상태가 아니라, 값이 없음을 나타내는 임시적인 값이다. 나는 nil이라는 값이 정말 존재하는 줄 알았는데 그건 아니고 임시 값이라는 것을 알게 되었다. 이게 뭔 소리람… 값이 있는 데 없는 척을 한다는 건가 nil의 개념에 대해 찾게 된 과정 1) Swift 공식 문서에서의 nil 공식 문서에서 nil에 대한 내용은 Objective-C에서의 nil과 Swift에서의 nil을 비교하는 내용에 적혀 있는데, 직접 번역해 보았다. 1-1) 값의 부재(不在) (2023-12-02 검토) In Objective-C, `.. 2023. 5. 9.
[Swift] 옵셔널과 언래핑(Optionals and Unwrapping) 머리말 Swift 언어만의 특이한 자료형, 옵셔널(Optional) Swift 언어를 계속 접하다 보면 다른 언어와는 다르게 물음표 기호(?)와 느낌표 기호(!)가 많은 것을 알 수 있다. 처음에는 생소한 개념이고 왜 이런 걸 쓰는지에 대한 의문이 남지만, 쓰면 쓸수록 유용하다는 옵셔널(Optional)에 대해 자세히 알아 보자. 참고 자료 옵셔널(Optionals) - 기본 (The Basics) - Swift 옵셔널 - 앨런 Swift문법 마스터 스쿨 옵셔널 타입(Optional Type) 정의 변수의 값이 없는 경우를 포함하는 임시적인 타입 '선택적인'이라는 뜻의 영단어 optional에서도 알 수 있듯이, 실제로 값이 있을지 없을지를 나타내는 임시적인 타입이다. 'optional'의 검색결과 : .. 2023. 5. 8.
[Swift] (알다가도 모를) 문자열의 접근 문자열에 대한 알고리즘 문제를 Swift로 풀어보면서 Swift에서 문자열의 접근이 되게 까다롭다는 생각이 들었다. Python에서는 문자열도 배열처럼 대괄호를 통한 인덱스 접근이 곧바로 되지만, Swift는 그렇지 않기 때문이다. 따라서 다시 문자열 접근을 하는 상황이 생겼을 때 처음보다 덜 헤매기 위해 이번 포스팅을 쓰게 되었다. 문자열 접근에 대해 복습도 할 겸 이를 정리하고 싶었다. 📌 Swift에서 배열과 문자열의 인덱스 접근 인덱스 접근의 차이점 배열에서는 대괄호[]를 사용하여 인덱스 접근이 손쉽게 가능하다. 이에 반해 문자열은 .index를 메서드를 쓰는 것도 모자라서, startIndex/endIndex라는 메서드와 offsetBy라는 매개변수 이름까지 쓰면서 접근해야 한다. 이 뭔… 예시.. 2023. 4. 25.
[Swift] 문자열은 참조 타입이 아닌 값 타입이다? 📌 문자열의 타입은 값 타입(Value Type) Xcode에서 String의 Definition 검색 Xcode에서 String을 입력하고 커맨드(command) 키를 누른 채로 String을 눌러 보자. Swift에서 문자열은 구조체이다. 따라서 문자열은 값 타입이다. String이 구조체(struct)로 구현되어 있는 것을 알 수 있다. 아직 블로그에서 다루지는 않았지만 Swift에서 구조체는 값 타입이다. 따라서 String은 값 타입(value type)이다. 값 타입의 특징 - 복사본의 전달/할당 값 타입의 특성 상, 문자열 값을 함수/메서드에 전달할 때나 상수/변수에 할당할 때 그 값은 복사되어 복사된 값이 전달/할당 된다. 전달/할당 된 복사본의 문자열은 원본의 문자열을 수정한다고 해서 복.. 2023. 4. 24.
[Swift] 배열과 튜플의 차이점 면접 질문 중 하나인 '배열과 튜플의 차이점을 말해보세요.' 대비하여 정리해 보았다. 나아가 차이점에 대한 피드백을 받아서 수정을 하게 되었다. 📌 코드 예시 Array var names = ["Andy", "Lucas", "Ellie", "Nora"] print(names) // ["Andy", "Lucas", "Ellie", "Nora"] print(names[2]) // Ellie Tuple let aPerson = (name: "Andy", age: 20) print(aPerson.name) // Andy print(aPerson.1) // 20 📌 차이점 - 두 가지 타입에 관하여 Swift의 타입은 크게 명명된 타입(named type)과 복합 타입(compound type)으로 나누어 볼 수.. 2023. 4. 24.
반응형