[Swift] 스위프트 기본 문법 3 (함수)

2023. 7. 8. 15:01·프로그래밍 언어/Swift
728x90
반응형
  1. 함수 선언
  2. 함수 호출
  3. 매개변수 기본 값
  4. 전달인자 레이블
  5. 가변 매개변수
  6. 함수의 타입 표현

 

1. 함수 선언

func 함수이름 (매개변수1: 타입, 매개변수2: 타입, ...) -> 반환타입 {
    함수 구현부
    return 반환값
}
func sum(a: Int, b: Int) -> Int {
    return a + b
}

 

반환 값이 없다면 -> Void

-> Void와 return 생략 가능

 

 

2. 함수 호출

sum(a: 3, b: 5)

매개변수가 없다면 괄호() 안쪽을 비워놓으면 된다.

 

 

3. 매개변수 기본 값

func 함수이름 (매개변수1: 타입, 매개변수2: 타입 = 매개변수 기본 값, ...) -> 반환타입 {
    함수 구현부
    return 반환값
}
func sum(a: Int, b: Int = 0) {
    print(a + b)
}

왼쪽부터 차례대로 매개변수 기본 값 할당

 

sum(a: 3) // 3

기본 값이 있는 매개변수는 생략 가능

 

 

4. 전달인자 레이블

함수를 호출할 때 매개변수의 역할을 명확하게 하거나

함수 사용자의 입장에서 표현하고자 할 때 사용

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

 

func sum(firstInt a: Int, secondInt b: Int = 0) {
    print(a + b)
}

함수 내부 - 매개변수 이름 사용

 

sum(firstInt: 3, secondInt: 5) // 8

함수 호출 - 전달인자 레이블 사용

 

 

5. 가변 매개변수

전달받을 값의 개수를 알 수 없을 때 사용

가변 매개변수는 함수당 하나 사용 가능

func 함수이름 (매개변수1: 타입, 매개변수2: 타입...) -> 반환타입 {
    함수 구현부
    return 반환값
}
func sum(a: Int, b: Int...) {
    print("a: \(a), b: \(b)")
}

 

sum(a: 3, b: 4, 5, 6) // a: 3, b: [4, 5, 6]
sum(a: 3)             // a: 3, b: []

가변 매개변수 부분을 비워놓으면, 빈 배열이 전달된다.

 

 

6. 함수의 타입 표현

swift의 함수는 변수, 상수 등에 저장이 가능하다.

매개변수를 통해 전달할 수도 있다.

(매개변수1타입, 매개변수2타입 ...) -> 반환타입
/*
func sum1(a: Int, b: Int) -> Int {
    return a + b
}
*/
var function: (Int, Int) -> Void = sum1(a:b:)
function(3, 5) // 8

반환타입을 생략할 수 없음

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

 

Int 매개변수와 Int... 매개변수는 타입이 달라 할당할 수 없다.

 

func function2(fun: (Int, Int) -> Void) {
    fun(3, 5)
}

function2(fun: sum1(a:,b:))
function2(fun: function)

 swift에서 함수는 매개변수로 받을 수 있다.

728x90
반응형

'프로그래밍 언어 > Swift' 카테고리의 다른 글

[Swift] 스위프트 기본 문법 4 (조건문, 반복문)  (0) 2023.07.09
[Swift] 스위프트 기본 문법 2 (Array, Dictionary, Set)  (0) 2023.07.03
[Swift] 스위프트 기본 문법 1 (언어 관습, 콘솔로그, 문자열 보간법, 데이터 타입, Any, AnyObject, nil)  (0) 2023.07.03
'프로그래밍 언어/Swift' 카테고리의 다른 글
  • [Swift] 스위프트 기본 문법 4 (조건문, 반복문)
  • [Swift] 스위프트 기본 문법 2 (Array, Dictionary, Set)
  • [Swift] 스위프트 기본 문법 1 (언어 관습, 콘솔로그, 문자열 보간법, 데이터 타입, Any, AnyObject, nil)
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (187)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    자바
    리눅스
    명령어
    컴퓨터 구조 및 설계
    단일 사이클
    코틀린
    C++
    컴공 포트폴리오
    42서울
    티스토리챌린지
    메모리 계층 구조
    추가 문제
    데이터패스
    컴퓨터구조
    반복자
    오블완
    자료구조
    사설 문제
    상속
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[Swift] 스위프트 기본 문법 3 (함수)
상단으로

티스토리툴바