Enumeration(열거형)- 연관된 상수들을 하나의 이름으로 묶은 것.- 열거형에 포함된 상수들은 상수라고 하지 않고, Enumeration Case라고 부른다.- Int나 String처럼 독립적인 타입이다. = 이름을 가지고 있다.- 스코프 내에서 중복되지않는 이름을 가져야 한다.- 열거형의 case는 값이다. //Syntaxenum TypeName { case caseName case caseName, caseName}- case의 이름은 lowerCamelCase의 규칙을 따라야 하며, 중복되어서는 안된다. Associated Values (연관 값) Raw Values (원시 값)각 case마다 기본으로 설정된 원시값을 저장할 수 있다. 즉 초기값을 저장할 수 있다.타입을 지정..
Swift에서 나머지를 구해보자.나머지와 나누기를 헷갈리는 경우가 많은데,나누기 연산자는 /나머지 연산자는 % 이다. 나머지 연산자는 정수형(Int)에서만 지원하기 때문에,만약 데이터 타입이 Double이라면, truncatingRemainder를 사용해야한다. 값1.truncatingRemainder(dividingBy: 값2)let num1:Double = 10let num2:Double = 7print(num1.truncatingRemainder(dividingBy: num2))위의 문법을 보면 바로 이해할 수 있을 것이다.값1을 값2로 나눈다고 이해하면 된다. 예시를 보자.func left(num1: Double, num2: Double) -> Double { let leftResu..
TupleTuple이란?- 두개 이상의 값을 저장할 수 있는 Compound Type이다. 즉 여러 값의 묶음이라고 보면 된다.- 서로 다른 타입의 값을 저장하는 것도 가능하다.- 튜플 내의 값들은 순서대로 저장되며, 값들은 각각의 고유한 인덱스를 가진다.- 튜플에 저장되는 값의 수는 튜플을 만들때 결정되고, 그 이후에는 변경할 수 없다.- 튜플은 값 형식이기 때문에, 새로운 변수에 저장하면 기존에 있던 값이 복사된다.- 상수로 선언하면 불변, 변수로 선언하면 가변 튜플이 된다. 예시들을 보자.let GpuPrice = ("3050", 50, "3060", 60, "3070", 70)GpuPrice.0 //"3050"GpuPrice.1 //50GpuPrice.2 //"3060"소괄호 ( )와 ,로 ..
For문//Syntaxfor loopConstant in Range { statements} for문은 반복문 중 하나이다.loopConstant로 변수나 상수의 이름이 온다. (wildCaed Pattern으로 생략할 수도 있다.그리고 in 뒤의 Range에서 반복할 범위를 작성한다.그럼 statements의 코드가 위에서 정한 범위만큼 반복된다. 간단하니 예시를 바로 보자.for num in 1 ... 10 { print(num)} //num이라는 변수명. 1부터 10까지 출력for index in 0 ... 10 { print("Hello")} //index라는 변수명. 10번 반복. "Hello" 10번 출력.func testLoop() { for _ in 1 ... 10 { ..
범위 연산자(Range Operator)반복할 범위를 표현하거나, 배열에서 특정부분을 추출할 때 주로 사용된다. Closed Range Operator 첫번째 유형lowerBound ... upperBound이항연산자로 구성되어있다.시작 위치와 종료 위치가 정해져있다.1 ... 10 //오름차순. 문제없음10 ... 1 //내림차순으로 작성하는 것은 불가능하다.lowerBound는 upperBound와 반드시 작거나 같아야 한다.만약 내림차순의 범위가 필요하다면 어떻게 해야할까?(1 ... 10).reversed()이렇게 하면 내림차순의 범위가 만들어진다. 두번째 유형lowerBound...후치연산자로 구성되어있다.시작 위치는 정해져있지만, 종료 범위는 정해져있지 않다.종료 위치는 해당 연산자를 실..
Switch문//Syntaxswitch valueExpression {case pattern: statementscase pattern, pattern: statementsdefault: statements} switch문을 쉽게 풀어서 설명해보자.valueExpression에서 선언된 값과 각각의 case들을 매칭시킨다.그래서 값이 같다면, 해당 case에 있는 코드를 실행.같지 않다면, 다음 case로 이동. switch문에서는 모든 케이스를 매칭해야 한다.그래서 case들에 매칭을 하고, 남은 다른것들은default에서 처리한다.if문의 else와 같은 역할이라고 보면 된다. 두번째 case를 보자.여러개의 패턴과 매칭시킬수도 있다.이때는 &&(and)가 아닌 ||(or)이기 때문에 둘중의 하나만..
아래의 글을 먼저 읽고 오면 좋다. Swift 기본 문법 - Functions (함수)Functions(함수)- 특정 기능을 수행하는 코드 조각- 언제든지 다시 사용이 가능하다.쉽게 말해서 나만의 함수를 만드는 것! calling Functions 함수를 가져다 쓰는 것. SyntaxfunctionName(parameters) Definingquaker.tistory.com guard문// Syntaxguard condition else { statements} - 다른 조건문들과 마찬가지로 condition을 평가한 뒤 코드를 실행한다.- condition에는 bool 타입의 표현식이 와야 한다.- guard에서는 else 블럭을 비워둘 수 없다. condition이 true일때.guard문을 ..
조건문, 제어문- 특정 조건에 따라서 다른 상태를 만들어 주는 문법- 코드의 실행 흐름을 관리하는 핵심적인 구성 요소 if문if 문은 주어진 조건이 true일 때 코드 블록을 실행else if문은, if문은 false이지만, 만약 else if문이 true일 경우 코드 실행else 문은 if문과 else if문에서 주어진 모든 조건이 false일 때 코드 블록을 실행// if 단독 사용.if condition { statements}// else문까지 사용.if condition { statements} else { statements}// else if문까지 사용.if condition { // 조건이 true일 때 실행됨 - 만약} else if anotherCondition { // 다른 조건이 ..
할당연산자란 - 왼쪽 피연산자에 오른쪽 피연산자의 값을 저장하는 연산자- 할당 연산자는 이항연산자이다. //Syntaxa = blet a = 123 우리가 흔히 아는, 변수를 선언하고, 값을 저장하는 것도 할당연산자이다. LValue와 RValue위의 코드를 보면, 왼쪽에 있는 a는 LValue, 123은 RValue에 해당한다.LValue는 항상 메모리 공간을 가지고 있어야하며, RValue는 메모리 공간을 가지고 있지 않아도 된다.위에서는 변수로 선언했기때문에, 선언과 동시에 메모리 공간이 할당된다. LValue는 메모리 공간을 가지고 있기 때문에, 값을 읽거나 저장할 수 있고, 연산자 왼쪽과 오른쪽에 모두 올 수 있다.RValue는 메모리 공간이 없는 표현식이기 때문에, 연산자 오른쪽에만 올 수 있..