날쌘 개발자

스위프트 기본문법 (2) 본문

ios/기본문법

스위프트 기본문법 (2)

훈식이 2021. 6. 8. 17:15
728x90

본 내용은 인프런 https://www.inflearn.com/ 

야곰님의 '야곰의 스위프트 기본문법' https://www.inflearn.com/course/%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95/dashboard

에서 필기한 내용을 바탕으로 옮긴 내용입니다.

 

함수

import Swift

 

함수 선언

func 함수이름 (매개변수1이름 : 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) → 반환타입 {

함수 구현부

return 반환값

}

func sum(a: Int, b: Int) → Int {

return a + b

}

 

반환 값이 없는 함수

func 함수이름 (매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) → Void {

함수 구현부

return

}

func printMyName(name: String) → Void {

print(name)

}

func 함수이름 (매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) {

함수 구현부

return

}

func printYourName(name: String) {

print(name)

}

 

매개변수가 없는 함수

func 함수이름() → 반환타입 {

함수 구현부

return 반환값

}

func maximumIntegerValue() → Int {

return Int.max

}

매개변수와 반환값이 없는 함수

func 함수이름() → Void {

함수 구현부

return

}

func hello() → Void { print("hello") }

func 함수이름() {

함수 구현부

return

}

func bye() { print("bye") }

함수의 호출

sum(a: 3, b:5) // 8

printMyName(name: "hoon") // hoon

printYourName(name: "hoonsig") // hoonsig

maximumIntegerValue() // Int의 최댓값

hello() // hello

bye() // bye

함수 고급

매개변수 기본값// 함수의 매개변수에 값이 들어오지않아도 자동으로 매개변수를 갖게 되는것

매개변수 목록 중에 뒤쪽에 위치하는 것이 좋음

func 함수이름( 매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 = 매개변수 기본값 ...) → 반환타입 {

함수 구현부

return 반환값

}

func greeting(friend: String, me: String = "hoon") {

print("Hello \(friend)! I'm \(me)")

}

매개변수 기본값을 가지는 매개변수는 생략할 수 있음

greeting(friend: "dan") // Hello dan! I'm hoon

greeting(friend: "John", me: "Eric") // Hello John! I'm eric

 

전달인자 레이블

함수를 호출할 때 매개변수의 역할을 좀 더 명확하게 하거나 함수 사용자의 입장에서 표현하고자 할때 사용

func greeting(to friend: String, from me: String) {

print("Hello \(friend)! I'm \(me)")

}

greeting(to: "dan", from: "hoon") // Hello dan! I'm hoon

함수를 호출할 때에는 전달인자 테이블을 사용해야 함.

함수이름이 같더라도 전달인자 여부에 따라 서로 다른함수로 취급됨.

 

가변 매개변수

전달 받을 값의 개수를 알기 어려울 때 사용

함수당 하나만 가질 수 있음

func 함수이름(매개변수1이름: 매개변수1타입:, 전달인자 레이블 매개변수2이름: 매개변수2타입 ...) → 반환타입 {

함수 구현부

return

}

func sayHelloToFriends(me: String, friends: String...) → String {

return "Hello \(friends)! I'm \(me)!"

}

print(sayHelloToFriends(me: "hoon", friends: "dan", "jun", "sun")) // Hello ["dan", "jun", "sun"]! I'm hoon!

print(sayHelloToFriends(me: "hoon")) // Hello [ ]! I'm hoon!

스위프트는 함수형 프로그래밍 패러다임을 포함하는 다중 패러다임 언어.

스위프트의 함수는 일급객체이므로 변수, 상수 등에 저장이 가능하고 매개변수를 통해 전달할 수도 있음.

 

함수의 타입표현

반환타입을 생략할 수 없음.

(매개변수1타입, 매개변수2타입 ...) → 반환타입

var someFunction: (String, String) → Void = greeting(to: from: )

타입이 다른 함수는 할당할 수 없음.

//someFunction = sayHelloToFriends(me: friends: )

 

https://www.notion.so/2-d9582d3a5aa44bb1a0f1ec8a7e3e8eed

728x90

'ios > 기본문법' 카테고리의 다른 글

고차함수  (0) 2022.03.01
스위프트 기본문법 (5)  (0) 2021.07.09
스위프트 기본문법 (4)  (0) 2021.07.09
스위프트 기본문법 (3)  (0) 2021.07.09
스위프트 기본 문법 (1)  (0) 2021.06.02