Swift 언어
1. `Int?`와 `Int!`의 차이`Int?`(Optional타입)값을 가지고 있거나(`nil`이 아님), `nil`일 수도 있는 타입임.값을 사용하려면 명시적으로 언래핑(옵셔널 바인딩 or 강제언래핑)을 해줘야함let a: Int? = 0print(a) // Optional(0)`Int!`(IUO타입)마치 일반 타입처럼 사용할 수 있는 옵셔널임자동으로 언래핑되지만, `nil`일 경우 런타임 에러가 발생함실수로 크래시를 일으킬 위험이 크기 때문에 되도록 사용을 안하는 것이 좋음let b: Int! = 0print(b) // 0 (자동 언래핑)2. IUO의 자동 언래핑 시점: IUO는 Non-Optional 타입으로 저장하거나 처리할 때 자동으로 언래핑 됨.let a: Int? = 0let b: Int..
함수는 어떤 작업을 수행하는 코드 묶음임. Swift에서 함수는 코드의 재사용성을 높이고, 깔끔하게 관리하기 위해 필수적인 요소임.1. 함수의 기본 구조func 함수이름(매개변수: 매개변수 타입) -> 반환타입 { 실행될 코드}함수 이름은 Low Camel Case로 작성.매개변수(Parameter): 함수 내부에서 사용할 변수.반환 타입(Return Type): 함수가 결과로 반환하는 값의 타입.반환값이 없을 때는 `Void`(또는 생략 가능).예제로 가장 간단한 함수를 만들어 보겠음func sayHello() { print("Hello")}`sayHello`라는 함수를 만들었고 저 함수가 호출됐을 떄 실행되는 코드는 Hello라는 텍스트임. 호출 하는 방법은 아래와 같음sayHello() // ..
열거형(enum)은 관련 있는 값들을 묶어서 더 안전하고 보기 좋게 만들어주는 기능임. `Swift`에서 자주 쓰이는 기능 중 하나라서 정리해봄.1. 열거형이란?: 열거형은 관련 있는 값들을 그룹으로 묶어 하나의 타입으로 관리할 수 있도록 만들어주는 기능임. 아래와 같은 특징이 있음관련 있는 값들을 그룹화함. 각 값은 케이스(case)로 정의되며, 열거형의 타입으로 묶임.열거형을 사용하면 오타나 잘못된 값 입력을 방지할 수 있음. (타입 안정성을 높임)`switch` 문과 결합하여 모든 케이스를 안전하게 처리 가능함.코드 가독성이 올라감2. 기본 열거형 사용법아래는 `Alignment`라는 열거형을 만들어 텍스트 정렬 방향을 정의한 예제임.import UIKit// 텍스트 정렬 방향 열거형enum Ali..
Swift에서 구조체(struct)와 클래스(class)는 데이터와 기능을 캡슐화하기 위해 사용되는 기본적인 설계도임. 이번 포스팅에서는 구조체와 클래스의 기본 문법과 차이점을 정리해봄.1. 구조체의 기본 구조: 구조체는 값 타입(Value Type)으로, 데이터를 캡슐화하기 위해서 사용됨. Swift에서는 구조체가 기본적으로 설계도 역할을 함struct StructName { // property (속성) // method (메서드) // initializer (생성자) // subscript (서브스크립트)} struct Person { var name: String // 속성 var age: Int func speak() { // 메서드 print(..
iOS 개발하면서 Optional 개념은 필수로 알아야 함. Swift에서 값이 없을 수도 있다는 걸 표현하려면 Optional을 써야 함. 이번 포스팅에서는 Optional 기본 개념, Unwrapping, Optional Binding에 대해서 정리해볼 것임. 1. Optional 이란? 🤔let num: Int? = nil // 값이 없음let name: String? = "Doseo" // 값이 있음Optional 타입 변수는 값이 없을 때 nil을 저장할 수 있음. 반면, Non-Optioanl(일반 타입) 타입 변수는 무조건 값을 가짐. 2. Optional 값 사용하기: Unwrapping 🫢Optional 값을 사용하려면 Unwrapping이 필요함. (1) 강제 Unwrapping: ..
산술 연산자: 기본적인 수학 연산을 수행함연산자설명예시(let a = 5, b = 3)결과+더하기a + b8-빼기a - b2*곱하기a * b15/나누기a / b1%나머지a % b2주의할 점 : a / b 는 정수끼리 나누면 정수 결과만 반환함 할당 연산자연산자설명예시=값을 변수에 할당let a = 10+=더하고 할당a += 5-=빼고 할당a -= 5*=곱하고 할당a *= 5/=나누고 할당a /= 5%=나머지 계산 후 할당a %= 5 비교 연산자연산자설명예시 ( a = 5, b = 3)결과==같음a == b false!=같지 않음a != btrue작음a flase>큼a > btrue작거나 같음a false>=크거나 같음a >= btrue 논리 연산자연산자설명예시 (true, false)결과&&논리 ANDt..
import UIKit// Have a nice day // 이것은 Swift에서는 문자열로 판단하지 않음."Have a nice day" // 큰따옴표로 해야 문자열로 판단함."123" // 이것도 문자는 숫자로 이루어져 있지만 큰따옴표로 되어있으므로 문자열로 판단함.// let onChar = "1" // 이렇게 작성하면 문자로 판단.let onChar: Character = "1"// let doubleChar: Character = "12" // 이것은 두개의 문자가 들어가서 문자로 저장할 수 없는 것임.// 즉, 문자 : 1개의 문자, 문자열 : 2개 이상의 문자의 집합체let emptyChar : Character = " " // 빈공간으로 하고싶으면 하나의 스페이스를 둬야함.// let st..
import UIKit123 // Integer Types1.23 // Floating-point Typesvar number = 0// Int8, 16, 32, 64가 있음Int8.min // Int8타입이 저장할 수 있는 최소값Int8.max // Int8타입이 저장할 수 있는 최대값// Int 자체는 - ~ + 까지저장함. UInt는 +만 저장함// 실수를 저장하는 자료형은 Float, Double가 있지만 일반적으론 Double를 사용함// 참거짓을 부르는 명칭은 "Boolean" 일반적으로 Bool타입이라고 함let ishappy = truelet gloomy = false// 타입 확인하는법// 정수 : Int, 실수 : Double, 문자열 : String, 참거짓(불린) : Boollet ..
import UIKit// 변수var name = "Swift" // 변수선언 우측열을 좌측열에 저장한다var thisYear = 2024 // Year에서 Y를 대문자로 쓴 이유 아래에 정리var valid = true // or false// 이름 정의 규칙// Naming Convention// 코드의 가독성이 높아짐 => 코드의 안정성이 높아짐print(name) // 프로젝트에서 값을 도출하려면 print를 작성해야함print(thisYear)print(valid)name = "Steve" // 우측열을 좌측열에 새로 저장한 것임 => Swift + Steve가 아닌 Swift가 Steve가 되는 것name = "Doseo" // 가장 마지막에 저장된 값이 저장됨thisYear = 2025val..