[swift] Function

2024. 3. 28. 18:54·swift

함수 (Function)

  • 함수는 독립적인 코드 블록으로, 특정 작업을 수행하고 값을 반환하거나 부가적인 기능을 한다.
  • 전역 범위에서 정의되거나 특정 타입 내에 포함될 수 있다.
  • 함수는 'func' 키워드를 사용하여 정의되며, 함수 이름, 파라미터, 반환 타입 및 실행할 코드를 포함한다.

메서드 (Method)

  • 메서드는 특정한 타입에 속함 함수로, 해당 타입의 인스턴스에 의해 호출된다.
  • 메서드는 해당 타입의 인스턴스에 대해 작동하거나 변경하는 데 사용된다.
  • 메서드는 함수와 비슷한 구문을 가지지만, 특정 타입에 속해 있으며 해당 타입의 인스턴스를 수정할 수 있다.

함수 선언

  • 함수 이름은 유니크해야 한다.
  • 파라미터와 반환 유형은 선택적이다. (없어도 된다.)
func 함수이름(파라미터1: 타입, 파라미터2: 타입) -> 반환타입 {
	// 함수의 본문
	return 반환값 // 반환 값이 있는 경우 - 반환타입과 동일해야한다. 
}

파라미터

  • 함수는 0개 이상의 파라미터를 가질 수 있다.
  • 파라미터는 함수 호출 시 전달되는 값이며, 함수 본문 내에서 사용된다.
  • 파라미터는 이름과 타입으로 구성된다.

반환 값

  • 함수가 값을 반환하는 경우, 반환 타입을 선언해야한다.
  • 반환 타입은 함수의 실행 결과를 나타내며, 함수 실행이 완료되면 반환된다.
  • 반환 타입이 없는 경우 'Void'를 사용하거나 생략할 수 있다.

함수 호출

  • 함수를 호출할 때는 함수 이름을 사용하고, 괄호 안에 전달할 인수를 나열한다.
  • 함수 호출 결과는 변수에 할당하거나 다른 표현식 내에서 사용할 수 있다.
let 결과 = 함수이름(전달값1, 전달값2)

 

내부 및 외부 파라미터 이름(Internal and External Parameter Names)

  • 함수 정의(선언) 시 파라미터에 내부 및 외부 이름을 지정할 수 있다.
  • 내부 이름은 함수 내에서 사용되는 파라미터의 이름이며, 외부 이름은 함수를 호출할 때 사용되는 이름이다.
func exampleFunc(externalName internalName: String) -> String {
    return internalName
}

var name: String = "홍길동"

name = exampleFunc(externalName: "홍길동아니다")

print("저는 \(name) 입니다.")

// 저는 홍길동아니다 입니다.

 

파라미터 레이블 제외

  • '_'(언더바)로 파라미터를 변경하면 인수 레이블에 이름 지정을 삭제할 수 있다.
func exampleFunc(_ internalName: String) -> String {
    return internalName
}

var name: String = "홍길동"

name = exampleFunc("홍길동아니다")

print("저는 \(name) 입니다.")

// 저는 홍길동아니다 입니다.

 

파라미터 기본 값

  • 파라미터에 기본값을 할당할 수 있다.
func exampleFunc2(x: Int, y: Int = 5) {
	print("x: \(x)")
    print("y: \(y)")
}

exampleFunc2(x: 3)
// x: 3
// y: 5

exampleFunc2(x: 3, y: 8)
// x: 3
// y: 8

'swift' 카테고리의 다른 글
  • [swift] 데이터 저장 방식
  • [swift] Optional
  • [swift] Loops
  • [swift] Collection
GwanSon
GwanSon
버그는 도전, 코드는 해결. 열정있는 개발을 하자.
  • GwanSon
    관슨의 개발일지
    GwanSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (3)
      • swift (15)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (8)
      • CS (8)
      • 면접 (11)
      • Flutter (4)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    2025 토스 Next
    백준
    네이버 부스트캠프 후기
    Swift
    토스
    네이버 부스트캠프
    후기
    tuist
    챌린지
    부스트캠프 10기
    ios
    모듈화
    부스트캠프
    boj
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
GwanSon
[swift] Function
상단으로

티스토리툴바