[Swift] 문법 (Ver. 간단 정리)

East Silver·2021년 9월 27일
0

Variable

: 값을 저장할 수 있는 공간

let 상수명: 데이터 타입 =//변경 불가능
var 변수명: 데이터 타입 =//변경 가능

Data Type

Int : 64bit 정수형
UInt: 부호가 없는 64bit 정수형
Float: 32bit 부동 소수점
Double: 64bit 부동 소수점
Bool: true, false 값
Character: 문자
String: 문자열
Any: 모든 타입을 지칭하는 키워드

-> 데이터 타입을 명시하지 않아도 값에 의해 타입을 추론한다

var number = 10 // INT

Collection Type

Array

var numbers: Array<Int> = Array<Int>()
var numbers = [Int]()
var numbers: [Int] = []
numbers.append(1)
numbers.insert(3, at: 1)
numbers.remove(at: 0)

Dictionary

var dic: Dictionary<String, Int> = Dictionary<String, Int>()
var dic: [String: Int] = [:]

Set

: 데이터 중복을 허용하지 않는다.

var set: Set = Set<Int>() // 축악형이 없다!
set.insert(10)
set.insert(20)
set.insert(20)
set // {10,20}

set.remove(20) // 순서가 없기때문에 저장된 값으로 삭제.
set // {10}

Function

: 함수는 작업의 가장 작은 단위이자 코드의 집합입니다.

func 함수명(파라미터 이름: 데이터 타입) -> 반환 타입 { 
	return 반환 값
}

//전달인자 레이블
func 함수명(전달인자 레이블: 매개변수 이름: 메게변수 타입) -> 반환 타입 { 
	return 반환 값
}

//와일드카드
func 함수명(_ 매개변수 이름: 메게변수 타입) -> 반환 타입 { 
	return 반환 값
}

//가변 매개변수 - 배열로 넘겨 받을 수 있다. 단, 함수 당 하나만 가능
func 함수명(매개변수 이름: 메게변수 타입...) -> 반환 타입 { 
	return 반환 값
}

Swift는 함수형 프로그래밍 패러다임을 포함한 다중 프로그레밍 패러다임이기 때문에
Swift의 함수는 일급객체(First Class Citizen)이다.

Condition

: 주어진 조건에 따라서 에플리케이션을 다르게 동작하도록 하는 것이다.
-> if, switch, guard

if (){

}else if(){

}else {

}
switch 비교대상 {
	case 패턴1:
	case 패턴2, 패턴3:
    default:
    
}

패턴에 비교연산자를 이용할 수 있다

let num = 7
switch num {
	case 1...9:
	default:
 }

Loop

: 반복적으로 코드가 실행되게 만드는 구문을 말한다.
-> for-in, while, repeat-while

for 루프상수 in 순회대상 {
	//실행할 구문
}

while 조건식 {
	//실행할 구문
}

repeat{
	//실행할 구문
}while 조건식

Optional

: 값이있을수도있고없을수도있다.

var name: String? //초기값이 설정되어 있지 않다면 nil로 저장되어있다

var optionalName: String? = "name" //초기닶 설정 가능
var requiredName: String = optionalName //ERROR!!! -> 옵셔널 바인딩이 필요하다

Optional Binding

  • 명시적 해제
    -> 안전하지 않은 방법. nil값을 강제 해제하면 ERROR!
// 강제 해제
var number1: Int? = 3
print(number1!)

// 비강제 해제(옵셔널 바인딩)
var number: Int? = 3
guard let result = number else {return}
print(number2)
  • 묵시적 해제
// 컴파일러에 의한 자동 해제
// 비교연산자로 다른 값과 비교하면 자동 해제
let val: Int? = 6
if val == 6 {
	print("")
}
// 옵셔널의 묵시적 해제
let string = "12"
var stringToInt: Int! = Int(string) //string 변환되지 못해 nil일 수 있기떄문에 옵셔널에 저장
peinr(stringToInt + 1) // 13

Struct

대문자로 시작

Class

초기화 구문
init(){}
deinit{}

Class와 Struct

공통점
차이점

Property

:

상속

Closure

Closure is the method that has no name.

  • Global function
  • Nested functon
  • Closure expressions

Caturing Value

Completion Block

Higher Order Function

Reference : https://docs.swift.org/swift-book/LanguageGuide/Closures.html

profile
IOS programmer가 되고 싶다

0개의 댓글

관련 채용 정보