본문 바로가기

Swift

(42)
071 ~ 086. Strings and Character (문자열과 캐릭터) Strings and Character let s = "string" print(type(of: s)) 결과 String let c = "c" print(type(of: c)) 결과 String 자동 지정 방식의 경우 큰 따옴표 사이의 문자 수와는 상관없이 항상 문자열로 판단한다. 따라서 형식지정 방식을 사용해야 character를 저장할 수 있다. let c: Character = "c" print(type(of: c)) 결과 Character 빈 문자열과 빈 문자를 저장하는 방법도 서로 상이하다. let emptyC: Character = " " var emptyS = " " print(emptyS.count) emptyS = "" print(emptyS.count) 결과 1 0 문자는 공백으로 분 ..
067 ~ 070. Tuples (튜플) Tuples Syntax (expr1, expr2, ...) let i = 12, 34 결과 //error int는 스칼렛 타입이기 때문에 여러개의 값을 저장 할 수 없다. int를 제외한 다른 대부분의 타입도 스칼렛 타입이므로 하나의 값을 저장 할 수 있다. let i - (13, 34) print(i) 결과 (12, 34) 괄호를 사용하면 이 때무터 튜플을 사용하며, 두 개 이상의 값을 저장 할 수 있다. 튜플은 컴파운드 타입이다. let data = ("", 200, "OK", 12.34) print(type(of: data)) 결과 (String, Int, String, Double) 튜플 안에 저장 된 멤버에 따라 여러 자료형을 저장 할 수 있다. 튜플 안의 멤버의 수와 자료형은 튜플이 생성됨과..
061 ~ 066. Closure (클로저) Closure Swift에서 closure는 두 가지로 구분 되고, 해당 되는 것은 세 가지 이다. Named Closure Function, Nested Function Unnamed Closure Anonymous Function 함수와 마찬가지로 클로저 또한 First Class Citizen이다. 클로저와 함수는 선언 방식이 동일하며, 그런 만큼 서로 호환 가능하다. Syntax { (parameters) -> ReturnTypein statement } { statements } parameter에서 returntype까지를 closure head 라고 말 한다. in 이후를 closure body라 말 한다. 클로저가 극단적으로 짧아지게 되면 brace와 statement만 남게 되는 경우가 ..
049 ~ 060. Functions (함수) Functions 특정한 기능을 수행하는 코드 조각이다. 코드의 재사용이 가능해 지기 때문에 유지보수에 유리해진다. Calling Functions (함수 호출) Syntax functionName(parameters) print("hello") 결과 hello Defining Functins (함수 정의) Syntax func name(parameters) -> ReturnType { statements } func printHello() { print("hello") } printHello() 결과 hello Return Values (반환) Syntax func name(parameters) -> ReturnType { statements return expression } func add() ->..
043 ~ 048. Optionals Optionals let num: Int print(num) 결과 //error 변수와 상수는 사용하기 전 반드시 초기화해야 한다. 하지만 초깃값을 비워야 하는 경우 해결책으로 0을 비었다고 사용한다. 특정 문자열을 비었다고 사용한다. 을 사용하는 경우 각각 0을 다른 방법으로 사용 할 수 없다. 자료형을 항상 문자열로 고정 할 수는 없다. Syntax TypeName? let optionalNum: Int? = nil print(num) 결과 nil nil은 c나 기타 언어의 null과 같은 역할을 한다. Optional은 '값이 비어있음'을 표현할 수 있는 자료형이다. Unwrapping var num: Int? = nil print(num) num = 123 print(num) 결과 nil Opti..
039 ~ 042. Control Transfer Statements, Labeled Statement (흐름 제어 문) Control Transfer Statements fallthrough, throw, return, break, continue가 해당되며, 이전에 설명했던 fallthrough를 제외한 break, continue를 일단 정리하고, throw와 return은 함수에서 다시 정리한다. Transfer Control 제어 전달은 현재 실행중인 scope에서 코드를 중지하고 다음에 실행할 코드를 실행하는 것을 말한다. break Statement switch문과 반복문 두루 사용 가능하다. 현재 실행중인 문장을 중지하고 다음 문장을 진행한다. switch문에서 사용할 경우 let num = 1 switch num { case 1...10: print("begin") if num % 2 != 0 { //num..
037 ~ 038. Loop Statements (반복문) For-In Loops Syntax for loopConstant in Range { statements } for loopConstant in Collection { statements } loopConstant는 바꿀 수 없다. Range만큼 Statements를 반복한다. for index in 1 ... 3 { print("hello") } 결과 hello hello hello index는 선언이후 사용하지 않았기 때문에 warning이 표시된다. 이런 경우 index를 '_'로 대체하여 사용할 수 있는데 이를 wildcard pattern이라고 한다. 변형 for _ in 1 ... 3 { print("hello") } wildcard pattern은 위와 같이 변형해서 사용할 수 있다 let ..
032 ~ 036. Conditional Statements (조건문) if Statement (if 문) Statement if condition { statements } let id = "root" let password = "1234qwer" //id 확인 if id == "root" { print("valid id") } //password 확인 if password == "1234qwer" { print("valid password") } 결과 valid id valid password 두 가지의 조건문을 논리 연산을 통해 하나로 묶을 수도 있다. let id = "root" let password = "1234qwer" if id == "root" && password == "1234qwer" { ("login success") } 결과 login success..
020 ~ 031. Operator (연산자) + 실습 기본 Syntax A + B A와 B는 Operend (피연산자) +는 Operend (연산자) 구분 +A A + B A + B : C 단항연산자 이항연산자 삼항연산자 조건연산자 //단항연산자는 공백 없이 붙여 쓴다. //⭕️ +A //❌ + A //이항연산자는 공백을 사용해 띄어 쓴다. //⭕️ A + B //❌ A+B //연산자 형식에 따른 명칭 //prefix Operator +A //postfix Operator A+ //infix Operator A + B 기본적으로 곱과 나눗셈을 덧셈과 뺄셈보다 우선 수행한다. Arithmetic Operator (산술 연산자) Addiction (덧셈) Syntax A + B Subtraction (뺄셈) Syntax A - B Multiple (곱셈) Sy..
012 ~ 019. literal과 datatype Data Type Builtin Data Type integer (정수), floating-point (실수), boolean (참, 거짓), character (문자), string (문자열) 등의 언어에서 미리 제공하는 데이터 타입. Cutom Data Type 그 외의 사용자가 생성해 사용하는 데이터 타입. Memory 0과 1 (2진수)을 저장할 수 있는 반도체. 단위는 Bit부터 YB까지. Bit 0과 1을 저장. Byte Bit * 8 256개의 데이터를 저장(Unsigned : 0 ~ 255, Signed : -128 ~ 127) Data마다 알맞는 메모리 크기가 있다. 예를 들면 Int 자료형은 8Byte의 메모리를 가짐. 표현 범위는 약 -900경 ~ 900경 까지. 이러한 자료형에 일반..