Swift 언어의 이해

ulls12·2023년 11월 27일
1

Swift TIL

목록 보기
6/60
post-thumbnail

오늘 한 일

  • 새로운 팀원들과 인사
  • Swift 문법 강의 시작
  • 사전캠프 때 풀었던 알고리즘 문제 복습

함수와 메서드의 차이

함수

  1. 기능의 수행 - 특정 작업이나 기능을 수행하는 코드의 블록. 호출 될 때 실행되며, 순차적으로 실행된다
  2. 재사용성 - 코드를 모듈화하고, 같은 기능을 반복할 수 있도록 한다
  3. 매개변수 - 함수는 입력값을 받을 수 있고 입력값은 매개변수에 의해 만들어진다
  4. 반환값 - 값의 반환이 가능하다
  5. 함수 타입 - Swift에서는 함수도 하나의 타입으로 취급될 수 있다
func functionName (arguumentLabel: parameterType) -> returnType {
	// code
    }

메서드

메서드는 함수와 유사한 기능을 수행하지만, 몇가지 중요한 기능의 차이가 있다
1. 정의와 소속성

  • 함수는 독립적으로 정의되며, 특정한 개체나 타입에 속해 있지 않는다.
  • 메서드는 클래스, 구조체, 열거형 등의 특정한 타입에 속해 있다. 객체 지향 프로그래밍에서 객체의 특정한 기능을 수행하기 위해 사용한다
  1. 호출 방식
  • 함수는 직접적으로 호출된다
  • 메서드는 해당하는 객체 또는 타입에 대해 호출된다.
  1. 소속성
  • 함수는 특정한 객체의 속성이나 상태에 접근할 수 없다 -> 주어진 매게변수에 따른 값만을 작업 수행하고 값을 반환하는 데 집중한다
  • 메서드는 객체 또는 타입의 속성에 직접적으로 접근할 수 있다.

특수한 데이터 타입

Tuple

  • 튜플은 여러 타입의 값을 하나로 그룹화한 값이다
  • 튜플은 단순한 데이터 구조에서 효과적이다. 데이터 구조가 복잡해질수록 적합하지 않다
  • 복잡한 데이터는 사용하는 쪽에서 추가적인 매핑(Mapping) 작업이 필요하다
let myInfo: (Int, String) = (height: 186, name: "eunsung")
print("제 이름은 \(myInfo.1) 입니다")
//출력값: 제 이름은 eunsung 입니다
print("제 키는 \(myInfo.0) 입니다")
//출력값: 제 키는 186 입니다
  • 엘레멘트의 순번은 1이 아닌 0 부터 시작한다
  • 각 엘레멘트에는 이름을 붙일 수 있다

Any

  • Any는 다양한 데이터 타입의 값을 수용한다
var anyArray: [Any] = [1, "apple", true]
  • 하지만 Any 데이터 형을 대입하려면 반드시 형 변환이 필요하다
var anyValue: Any = 100
let anyValue: Double = anyValue
// 에러 메시지 : Cannot convert vaulue of type 'Any' to specific type 'Double'
  • 형 변환 과정은 옵셔널을 이해해야 한다

Swift에서의 타입

Swift에서 타입(Type)은 변수 또는 상수에 저장될 데이터의 종류를 정의하는 것이다.
Swift의 타입은 크게 두가지로 나뉜다

기본 데이터 타입 (Built-in Data Types)

  • Int, Double, Bool, String, Character 등등

사용자 정의 데이터 타입 (Custom Data Types)

  • Swift에서는 개발자가 직접 타입을 정의할 수 있는 능력을 제공한다
  • 구조체(Structures) - 멤버 변수와 메서드를 포함하는 타입
  • 클래스(Classes) - 객체 지향 프로그래밍을 위한 참조 타입
  • 열거형(Enumerations) - 관련된 값들의 그룹을 정의하는 타입
  • 프로토콜(Protocols) - 특정 작업 또는 기능에 대한 메서드, 속성, 요구 사항을 정의 하는 타입

내일 할 일

  • Xcode 네비게이션 및 화면전환 복습
  • 객체 지향의 정의, 옵셔널, 클래스 구조체 강의 듣기
  • 개인 과제 빌드 생각해보기
profile
I am 개발해요

0개의 댓글