Swift를 사용하면 변수를 문자열과 정수로 생성할 수 있지만 다른 많은 유형의 데이터도 생성할 수 있습니다. 변수를 생성할 때 Swift는 변수에 할당한 데이터의 종류에 따라 변수가 어떤 유형인지 알아낼 수 있으며, 그때부터 해당 변수는 항상 하나의 특정 유형을 갖게
변수를 사용하면 프로그램에 임시 정보를 저장할 수 있고 거의 모든 Swift 프로그램의 핵심 부분을 형성할 수 있습니다. 궁극적으로 프로그램은 데이터를 어떻게든 변환할수 있습니다 .사용자가 할 일 목록 작업을 입력한 다음 확인하도록 하거나, 자본주의 너구리를 위해 일하
제가 이해하고 공부 한대로 작성한 내용이다 보니 , 정확한 정보가 아닐수도 있습니다 고쳐야 할 부분이 있다면 , 편하게 애기 해주시면 감사 하겠습니다🙏🏻숫자 변수를 생성할 때 Swift는 소수점을 포함하는지 여부에 따라 정수 또는 이중으로 간주할지 여부를 결
제가 이해하고 공부 한대로 작성한 내용이다 보니 , 정확한 정보가 아닐수도 있습니다 고쳐야 할 부분이 있다면 , 편하게 애기 해주시면 감사 하겠습니다🙏🏻💡문자열 보간법이란 ? String Interpolation변수 또는 상수 등의 값을 문자열 내에
Swift 변수 상수 정의 프로그래밍에서의 변수나 상수를 이용해 프로그램에 사용되는 데이터를 메모리에 임시로 저장할수 있습니다. 변수는 생성 후 데이터값을 변경할 수 있지만, 상수는 변경이 불가능합니다. 변수 스위프트에서 변수는 var 키워드를 사용합니다. var
if-else 구문의 기본 형태if만 단독적으로 사용해도 되고, else if, else와 조합해서 사용 가능합니다.if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 하며, 조건 값을 감싸는 소괄호는 선택사항입니다.조건문은 어떠한 값이 특정 조건에 해당 할 때만 선
삼향 연산자 란 ? > Nil-coalescing : 옵셔널 값을 풀어주는 개념으로 삼항연산자를 활용해서 쓸 수 있습니다. (연산자? : 값을 확인, 변경, 결합하는데 사용하는 특별한 기호나 문구) > 삼항연산자는 ( ? ) = true, ( : ) = fa
tuple은 아주아주 간단한 Struct(구조체)라고 생각하시면 편합니다. 여러가지 "타입"을 한꺼번에 묶어서 사용이 가능함사전적 의미튜플(Tuple) 이란 유한 개의 사물의 순서있는 열거Swift에서의 튜플은 다양한 값(데이터)의 묶음이다. 튜플의 구성 요소들은 서로
반복문이란? > 반복문(Repetitive Statement)은 특정 부분을 반복해서 실행하는 제어 구문입니다. for문 > for 문은 초기식에 따라 조건식을 판단하여 실행하고 변환식을 계산합니다. 만약, 조건식이 참이면 계속 검사를 진행하고 거짓일 경우 for문을
스위프트 언어에서의 함수는 일하는 코드의 묶음에 이름을 붙여둔 것이라고 생각해볼 수 있습니다. 어떤 함수는 결과값이 없기도 하고, 어떤 함수는 입력값이 없기도 하지만, 우선은 아주 기본적인 형태의 함수를 살펴봅시다.수학에서의 함수는 f(x) = x + 2처럼 표현하죠.
guard 문은 뭔가를 검사하여 그 다음에 오는 코드들을 실행할지 말지 결정하는것, guard 문에 주어진 조건문이 거짓일 때, 여기에 달려 있는 코드블럭이 실행됩니다.조건식에 이 함수가 수행하는데 필요한 조건을 그대로 나타낸다는 점에서 if문에서 부정적인 조건식으로
스위프트는 튜플 외에도 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입을 제공합니다.컬렉션 타입에는 '배열', '딕셔너리', '세트'가 있습니다. Array (배열) - 멤버가 순서를 가진 리스트 형태의 컬렉션 타입Dictionary (딕셔너리) - 키
Dictionary는 key와 value로 데이터를 저장하는 컨테이너입니다. 각각의 value는 유일한 키 값에 물려있으며, key값은 Dictionary안에서 value를 찾기 위하 식별자역할을 합니다.Swift에서 Dictionary는 Dictionary<Ke
Swift의 Set 타입은 NSSet 클래스를 브릿지된 형태입니다.Set 타입은 순서가 중요하지 않거나 하나의 항목만 가져야 할 때 사용할 수 있습니다.Set 타입의 문법은 Set로 작성되며, 다음과 같이 초기화 할 수 있습니다. 만약 이미 초기화가 되어 있다면, 다
옵셔널 바인딩 (Optional Binding)옵셔널 바인딩이란 강제로 옵셔널을 여는 방식(Force unwrapping)이 아닌 안전하게 확인을 해보고 unwrapping하는 방법입니다. 즉, if문을 이용하여 옵셔널에 할당된 값을 임시 변수 또는 상수에 할당을 해주
이름이 없는(익명) 함수클로져와 함수는 기능은 동일 한테 형태만 다르다고 생각 하면됨함수를 1급 객체로 취급함수를 변수에 할당할 수 있다.함수를 파라미터로 전달이 가능하다.(함수에서) 함수를 반환할 수 있다. (리턴 가능)파라미터의 타입의 생략도 대부분 가능하다.(클로
옵셔널타입에 대해 접근연산자를 사용하는 방법옵셔널타입에 대해, "접근연산자"를 사용할때, ?(물음표)를 붙여서, 앞의 타입이 값이 nil을 가질 수도 있음을 표시 옵셔널체이닝의 결과는 항상 옵셔널이다.옵셔널체이닝에 값 중에서 하나라도 nil을 리턴한다면, 이어지는
고차원의 함수함수를 파라미터로 사용하거나, 함수실행의 결과를 함수로 리턴하는 함수일반적으로 함수형 언어를 지향하는 언어들에 기본적으로 구현되어 있음map 함수filter 함수reduce 함수forEach, compactMap, flatMapSequence, Collec
예전 언어들은 모든 메모리를 수동 관리했음실제로 개발자가 모든 메모리 해제 코드까지 삽입해야함 (실수할 가능성 높음)retain() 할당 ---> release() 해제 (RC +1) (RC -1) 개발자는 실제 로직 구현 포함, 메모리 관리에
컴파일 타임 에러 —> 스위프트 문법과 관련된 에러(컴파일러가 미리 알고 수정해야한다고 알려줌)런타임 에러 —> 프로그램이 실행되는 동안 발생타임 에러 —> 크래시(앱이 강제로 종료)발생가능한 에러를 미리 처리해 두면, 강제종료되지 않음 (개발자가 처리해야만
제네릭이 없다면, 함수(클래스, 구조체, 열거형 등)타입마다 모든 경우를 다 정의해야 하기 때문에개발자의 할일이 늘어난다. (유지보수/재사용성 관점에서 어려움)제네릭 문법형식에 관계없이, 한번의 구현으로 모든 타입을 처리하여, 타입에 유연한 함수 작성가능 (유지보수/재
에러가 발생하는 경우, 에러를 따로 외부로 던지는 것이 아니라리턴 타입 자체를 Result Type(2가지를 다 담을 수 있는)으로 구현해서함수 실행의 성공과 실패의 정보를 함께 담아서 리턴case success(연관값)case failure(연관값)에러는 동일하게 정
유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준스위프트는 유니코드의 체계를 사용스위프트의 문자열(String)?쌍따옴표 안에 문자(Character)들을 연결모든 문자열은 개별 인코딩된 유니코드 문자들(e
애플이 자신들이 원하는 코드를 감출 수 있음코드의 영역을 분리시켜서 , 효율적 관리 가능컴파일 시간이 줄어듬( 컴파일러가 , 해당 변수가 어느 범위에서만 쓰이는지를 인지 가능)코드의 세부 구현 내용을 숨기는 것이 가능하도록 만드는 개념(객체지향 - 은닉화가 가능해짐)(
스위프트의 숫자 리터럴을 표기하는 방법2진법/8진법/16진법의 수도 직접 써 넣을 수 있음큰숫자는 읽기 쉽게하기위해 언더바를 붙이는 것도 가능(단순히 언더바를 읽지않음)플랫폼 사양에 따르는 타입 : Int, UInt (최근 대부분 64비트)8-bit : Int8, UI
멀티쓰레드(Multi Thread)의 환경에서만 메모리 충돌이 일어나는건 아님구조체 등의 메서드에서 self(동일한 인스턴스)에 접근하는 경우 접근 충돌값 타입은 속성 하나가 아닌, 인스턴스 전체에 대한 읽고/쓰기로 접근 ⭐️
주요 프로토콜 Equatable / Comparable / Hashable Equatable : ==, != 비교 연산자 관련 프로토콜 Comparable : , =) Hashable : hash값을 갖게되어 값이 해셔블(값이 유일성을 갖게됨)해짐 Equatabl
함수의 return의 의미 (일반적인 경우)(함수의 결과로 인한) 값을 리턴함수 내부로 전달했던 CPU실행의 제어권을 다시 돌려줌Nonreturning(논리터닝) 함수:제어권을 전달하지 않음(함수를 호출했던 코드로 다시 제어권을 전달하지 않음)명시적으로 제어권을 전달하
키경로(문자열 처럼 쉽게 만들수 있는 인스턴스)로 속성에 쉽게 접근AnyKeyPath : 어떤 속성인지 특정되지 않음(보통, 함수 파라미터형식으로만 사용)PartialKeyPath : 타입에 대한 키패스(예를 들어 배열 같은 것으로 묶을때 사용)KeyPath<Ro