Day 1 ~ Day 4

sun·2021년 9월 14일
0

100 Days of SwiftUI

목록 보기
1/11
post-thumbnail

[Day 1]   [Day 2]   [Day 3]   [Day 4]

@ Day1 : 기본 자료형

# 스위프트는 타입 안정성(type-safe)을 지닌다

var int = 10
int = 20    // OK
int = "str" // KO

# 문자열 삽입 (String Interpolation)

let name = "sun"
var intro = "Hi I'm \(name)"  // "Hi I'm sun"

# Type Annotation

  • 용도 : 예를 들어 변수를 선언만 할 때 자료형만 미리 지정하기 위해 사용 가능
  • var name: String


@ Day 2 : 복잡한 자료형

# 세트

var colors = Set(["red", "green", "blue])

# 튜플

var name = (first: "Taylor", "Swift")
name.0  // "Taylor"
name.first  // "Taylor"
  • 배열과 달리 튜플의 경우 모든 요소의 자료형이 동일하지 않아도 됨
	var info = (name: "Swift", age: 25)

# 딕셔너리 디폴트 값

  • 딕셔너리에서 요소를 불러올 때, 해당 요소가 없을 경우 대신 불러올 디폴트 값 지정 가능
  • 디폴트 값을 지정하지 않으면 nil 반환
var colors = ["red", "green", "blue"]
colors["yellow", default: "not in colors"]  // "not in colors"

# 빈 컬렉션 생성

  • 배열 : [자료형]()
  • 딕셔너리 : [자료형: 자료형]()
  • 세트 : Set<자료형>()
      cf) 배열, 딕셔너리도 세트와 같은 방식으로도 선언 가능
var arr = [Int]()
var arr = Array<Int>()

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

var set = Set<Str>()

# Enumerations

다음과 같은 방식으로 선언

enum Result {
	case success
    case failure
}

var result1 = Result.success

Associated Values

enum Activity {
	case bored
    case running(destination: String, speed: Int)
    case talking(topic: String)
    case singing(song: String, volume: Int)
}

var talking = Activity.talking(topic: "pancakes")

Raw Values

  • 아래와 같이 시작값을 지정할수도 있으며 지정하지 않으면 0부터 시작
enum Planet: Int {
	case mercury = 1
    case venus 
    case earth
    case mars
}

var earth = Planet(rawValue: 2)  // earth

@ Day 3 : 연산자와 조건문

# Switch문

  • 스위치문은 모든 경우에 대해 결과를 지정해야 함
  • 따라서 모든 경우에 대한 코드를 일일히 작성하거나 default 값을 포함해야 함
  • 스위치문은 특정 케이스가 시행되면 바로 탈출하나 fallthrough 를 쓰면 해당 키워드가 포함된 케이스 실행 이후에도 그 이하의 코드에 접근할 수 있음
var weather = "sunny"

switch weather {
	case "rain":
    	print("Raining cats and dogs...")
    case "snow":
    	print("Snow Day!")
    case "sunny":
    	print("Sunny-side up!")
        fallthrough
    default:
    	print("Wish you a great day!")
}

# Range 연산자

  • 1..<5   ==   1 <= x < 5
  • 1...5   ==   1 <= x <= 5
  • var nums = 1...10 와 같이 선언도 가능

@ Day 4 : 반복문

# Repeat 반복문

var num = 0

repeat {
	print(num)
    num += 1
} while num < 5  // 0...4 출력

# n중 반복문 탈출

  • n중 반복문의 각 반복문에 라벨을 지정하면 어디서든 해당 반복문까지 탈출 가능! (파이썬 눈 감아...)
outerSpace: for i in 1..<11 {
	for j in 1..<11 {
    	print(i * j)
    	
        if i * j == 50 {
        	break outerSpace
        }
    }
}
profile
☀️

0개의 댓글