함수

Se Yeon Cho·2022년 7월 12일

Swift 입문하기

목록 보기
4/4
post-thumbnail

함수

  • 작업의 가장 작은 단위이자 코드의 집합
  • 반복해서 수행되는 작업에 사용
  • 1개의 기능을 1개의 함수로 쓰는게 가장 적절함

  • 기본 작성법
	func 함수명(파라미터 이름 : 데이터타입) -> 반환타입 {
    	return 반환값
	}
  • 매개변수(파라미터)가 여러 개인 경우는 쉼표로 구분
	func 함수명(파라미터1 이름 : 데이터타입, 파라미터2 이름 : 데이터타입) -> 반환타입 {
    	return 반환값
	}
  • 매개변수가 없는 경우 공란으로 표기
	func 함수명() -> 반환타입 {
    	return 반환값
	}
  • 반환값이 없는 경우 반환타입에 Void 표기 or 생략
	func 함수명(파라미터 이름 : 데이터타입) {
    // 함수 구현부
    return
	}
	func 함수명(파라미터 이름 : 데이터타입)  -> Void {
    // 함수 구현부
    return
	}
  • \(파라미터) 를 통해 매개변수 대입 가능
	func sendMessage(myName: String, name: String) -> String {
    	return "Hello \(name), I am \(myName)."
	}

전달인자 레이블을 통한 함수 정의

  • 기본 작성법
	func 함수명(전달인자 레이블: 매개변수 이름 : 매개변수 타입, 전달인자 레이블: 매개변수 이름 : 매개변수 타입, ... ) -> 반환타입 {
    	return 반환값
	}
  • 전달인자 레이블을 사용하면 사용자 입장에서 매개변수의 역할을 좀 더 명확하게 표현 가능하다.
	func sendMessage(from myName: String, to name: String) -> String {
    	return "Hello \(name), I am \(myName)."
	}
  • 기존언어처럼 전달인자 레이블을 사용하고 싶지 않을 경우,
    와일드카드(wildcard) 식별자(_) 사용
    \rightarrow 이자리에 뭐가 오든 상관하지 마라
	func sendMessage(_ myName: String, _ name: String) -> String {
    	return "Hello \(name), I am \(myName)."
	}
  • 스위프트 함수의 경우 매개변수로 몇개의 값이 들어올 지 모를 때 가변매개변수 사용한다.
  • 가변매개변수는 0개 이상의 값을 받아올 수 있다.
  • 가변매개변수로 들어온 인자값은 배열처럼 사용 가능하다
    \rightarrow 가변매개변수로 선언받으면 값을 배열로 넘겨받는다.
  • 함수마다 가변매개면수는 1개만 가질 수 있다.
	func sendMessage(_ myName: String, _ name: String...) -> String {
    	return "Hello \(name), I am \(myName)."
	}

	sendMessage(myName: "Muller", name: "Pep", "Klopp", "Ancelotti")
  • 스위프트는 함수형 프로그래밍 패러다임을 포함하는 다중 패러다임 언어이기 때문에 스위프트의 함수는 1급 객체이다.
    \rightarrow 함수를 변수, 상수등에 할당 혹은 매개변수로 전달 가능
profile
iOS Develop Studying

0개의 댓글