현제의 현재이야기

[swift] 기초 문법 3일차 본문

IOS/swift

[swift] 기초 문법 3일차

현재의 현제 2022. 9. 10. 11:45

함수

기본형태

func(a: Int) - > Int{}

반환값 없으면 void

매개변수 없으면 가로안에 비워두기

 

기본 매개변수 설정법

func greeting(friend: String, me: String = "yagom") {
    print("Hello \(friend)! I'm \(me)")
}

전달 인자

func 함수이름(전달인자 레이블 매개변수1이름: 매개변수1타입, 전달인자 레이블 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
    /* 함수 구현부 */
    return
}

// 함수 내부에서 전달인자를 사용할 때에는 매개변수 이름을 사용합니다
func greeting(to friend: String, from me: String) {
    print("Hello \(friend)! I'm \(me)")
}

// 함수를 호출할 때에는 전달인자 레이블을 사용해야 합니다
greeting(to: "hana", from: "yagom") // Hello hana! I'm yagom

ex)

func sayHello(to name1: String, from name2: String){
    print("Hello \(name1), my name is \(name2)")
}

sayHello(to: "너", from: "현제")

매개변수를 여러 개 받고 싶으면 (number: Int...) 처럼 ... 3개를 받으면 된다. 

 

주의

저렇게 to name1, from name2로 지정했을 때, sayHello(name1: "나", name2: "너") 로 받으면 오류가 뜬다!

무조건 to와 from으로 변수를 받아야 함.

 

 

데이터 타입으로서의 함수

var someFunc: (String, String) -> Void = sayHello(to:from:)

someFunc("윤지", "현제")

// 이것도 되고

var someFunc = sayHello(to:from:)

someFunc("윤지", "현제")

// 이것도 된다.
func sayHello(to name1: String, from name2: String){
    print("Hello \(name1), my name is \(name2)")
}
var bridgeFunc = sayHello(to:from:)

func funFunc(function: (String, String) -> Void){
    function("현제", "윤지")
}

funFunc(function: sayHello(to:from:))
funFunc(function: bridgeFunc)

//
Hello 현제, my name is 윤지
Hello 현제, my name is 윤지

---------

조건문

if, else if, else

if 조건 {
    /* 실행 구문 */
} else if 조건 {
    /* 실행 구문 */
} else {
    /* 실행 구문 */
}

switch

// 범위 연산자를 활용하면 더욱 쉽고 유용합니다
switch someInteger {
case 0:
    print("zero")
case 1..<100:
    print("1~99")
case 100:
    print("100")
case 101...Int.max:
    print("over 100")
default:
    print("unknown")
} // 100

 

 

[Swift] 기본 연산자 Part 3 - 범위 연산자, 논리연산자

범위 연산자 (Range Operators)범위 연산자Range Operators란 특정 범위 내의 정수형 숫자들을 간편하...

blog.naver.com

 

case가 끝나면 기본적으로 break문이 숨겨져 있고, 그대로 밑으로 진행하고 싶으면 fallthrogh를 추가해주어야 한다.

또한 두개를 붙이고 싶으면 ',' 를 이용해주면 된다.

반복문

for (name, age) in people {
    print("\(name): \(age)")
}
while integers.count > 1 {
    integers.removeLast()
}
repeat {
    integers.removeLast()
} while integers.count > 0

for 역순

var arr : Array<Int> = Array<Int>()

for i in stride(from:5, to: 0, by: -1){
    arr.append(i)
}
print(arr)
// [5, 4, 3, 2, 1]

 

-궁금-

파이썬에 switch case 문이 없었어서 잘 이해가 되지 않는다.

 

 

어제 놀러가느라 못했어서 오늘은 두 챕터를 나갔다! 꾸준히해서 얼른 문법 때버리고 스위프트로 알고리즘을 풀어보고 싶다.

'IOS > swift' 카테고리의 다른 글

[swift] 기초 문법 6일차(클로저)  (0) 2022.09.13
[swift] 기초 문법 5일차  (0) 2022.09.12
[swift] 기초 문법 4일차  (0) 2022.09.11
[swift] 기초 문법 2일차  (0) 2022.09.08
[swift] 기초 문법 1일차  (0) 2022.09.07
Comments