본문 바로가기

iOS45

[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] 두 요소의 위치를 바꾸는 방법 (swap 함수 구현과 swapAt 인스턴스 메서드) 들어가기 전에 글을 쓰게 된 이유 코딩테스트를 문제 하나를 풀고 있던 중, Swift 언어로 간단하게 배열의 두 요소를 바꾸고 싶은데 마음대로 되지 않았다. 내가 알던 swap의 알고리즘을 Swift에 적용해 보기도 했고, swapAt이라는 자체 인스턴스 메서드를 활용하여 요소를 바꿀 수 있는 걸 우여곡절 알게 되어서 이를 정리하기 위해 글을 쓰게 되었다. C의 swap 구현 C 언어의 swap 구현 내가 C언어에서 알고 있는 방식의 swap 알고리즘이다. 이를 Swift에 적용해 보고 싶었다. 참고로 코드블럭 언어가 cpp로 적혀 있는 건 티스토리의 코드블럭에서 C가 없어서 그렇다. #include void swap(int* a, int* b); int main(void) { int a = 1; int.. 2023. 5. 4.
[Swift] print 함수로 주어진 여러 아이템을 String 타입으로 표준 출력하기 들어가기 전에 포스팅 이유와 느낀 점 Slack에서 print 함수와 보간법(interpolation)에 대한 차이점의 질문이 올라 와서 나도 궁금해서 공식 문서를 찾아 보며 정리하게 되었다. 당연하게 쓰고 있는 print 함수이지만, 정작 어떻게 제대로 쓰는 줄 몰랐는데 이를 정리하면서 좀 더 깊게 알게 되었다 :) 참고 자료 print에 대한 애플 개발자 공식 문서를 참고했다. 아래에 한글로 적힌 내용은 공식 문서를 최대한 한글의 문맥에 가깝게 번역했다. print(_:separator:terminator:) | Apple Developer Documentation print 함수 정의 공식 문서 정의 Writes the textual representations of the given items i.. 2023. 5. 3.
[Swift] "~= " 연산자 함수로 패턴 매칭 확인하기 Xcode에서 SubString에 대한 Definition을 찾던 중 신기한 연산자(!)를 발견했다. 여기서 ~=가 연산자인 것 같은데 뭔지 궁금해서 블로그를 작성하게 되었다. 📌 애플 개발자 공식 문서 ~=(::) | Apple Developer Documentation 선언 ~= 연산자는 pattern과 bound를 매개변수로 받고 부울(Bool)을 반환하는 함수이다. static func ~= (pattern: Self, value: Self.Bound) -> Bool 매개변수 pattern → 어떠한 범위(a range) bound → 패턴에 대응하는 값(a value to match against pattern) 논의 You can use the pattern-matching operator (.. 2023. 4. 26.
반응형