ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift 기본 문법 정리 #2
    Programming Language/Swift 2020. 7. 21. 01:20
    반응형

     

     

     

    참고: 2020/06/22 - [Programming Language/Swift] - Swift 기본 문법 정리

    1. 함수

    1.1. 작성규칙

    func 함수명(변수: 타입) -> 리턴타입 {
      return 리턴값
    }

    1.2. Code Snippet

    • 자주 사용되는 코드 들을 가져와서 사용 할 수 있다.
    • ⌘ + ⇧ + L (command + shift + L) 을 입력하여 코드 스니핏 창을 열 수 있다.

     

     

    1.3. 파라미터 초기화

    func hello(num: Int = 10) -> Int{
      return num
    }

    1.4. 입력 파라미터 개수를 모를 때

    func addNums(nums: Int...) -> Int{
      var sum = 0
      for num in nums {
        sum += num
      }
      return sum
    }
    
    addNums(nums: 1, 2, 3, 4)

    1.5. Argument Label

    • 입력값에 대한 설명
    func 함수명(argument_label 변수: 타입) -> 리턴타입 {
      return 리턴값
    }
    
    func 함수명(_ 변수: 타입) -> 리턴타입 {
      return 리턴값
    }

    1.6. inout 키워드

    • inout 키워드를 쓰지않는 일반적인 경우, 파라미터는 상수(let) 으로 선언된다.
    • inout 키워드를 사용해서 해당 파라미터가 변수로 선언한다.
    func addNums(num1: Int, num2: inout Int) -> Int {
      num2 = 4
      return num1 + num2
    }
    
    var test1 = 1
    var test2 = 2
    addNums(test1, &test2)
    // 5
    print(test2)
    // 4

    1.7. 값/참조 에 의한 전달

    • 참조에 의한 전달: 값이 저장된 메모리 주소 전달
    • 값에 의한 전달: 값 을 전달

    2. 클래스 / 구조체

    2.0. 공통점 차이점

    2.0.1. 공통점

    • 속성(Property) 정의
    • 메소드(Method) 정의
    • 생성자를 통한 초기 설정
    • extension, protocol 사용 가능

    2.0.2. 클래스만의 특징

    • 상속(Inheritance)
    • 타입 캐스팅(Type Casting)
    • 소멸자로 리소스 정리

    2.1. 작성규칙

    2.1.1. 클래스

    class 클래스명 {
      // 클래스 바디
      init() // 생성자, 인스턴스 생성시 call
      deinit() // 소멸자, scope 를 빠져나갈 때(소멸될 때) call
    }

    예제

    class Circle {
      var radius = 5
      let pi = 3.141592
      func area() -> Double {
        return radius * radius * pi
      }
    }
    
    let circle = Circle()

    2.1.2. 구조체

    struct 구조체명 {
      // 구조체 바디
    }

    2.2. 생성자

    class 클래스명 {
      init() {
        // 기본 생성자
      }
    
      init(num: Int) {
        // 추가 생성자
      }
    }

    2.3. 상속 (Inheritance)

    • 부모클래스의 속성을 자식클래스가 상속 받음
    class 클래스명 : 부모클래스명 {
    }

    2.3.1. 오버라이딩 (Overriding)

    • 상속받은 속성을 자식클래스에서 재정의 하는 방법
    class 부모 {
      func hello() {
        print('Hello')
      }
    }
    
    class 자식 : 부모 {
      override func hello() {
        super.hello()
        print("지금은 자식 클래스")
      }
    }

     

    반응형

    'Programming Language > Swift' 카테고리의 다른 글

    [SwiftUI] NavigationView 와 NavigationLink 사용법  (0) 2021.04.27
    Hello World Alert App  (0) 2020.06.23
    Swift 기본 문법 정리  (0) 2020.06.22

    댓글

Designed by Tistory.