현제의 현재이야기
[swift] 기초 문법 3일차 본문
함수
기본형태
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
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