본문 바로가기

iOS 앱 개발자 프로젝트/Swift 문법 정복하기

[Swift] Property, Print and Function

2024년 3월 5일 화요일

 

  •  swift 기본 개념 중, 프로퍼티, 출력, 그리고 함수에 대해 명확하게 이해하는 것이 목표입니다.
  •  문자 보간법(String Interpolation)에서 '보간'이라는 단어와 의미가 다소 생소했는데 우선은 '중간에 무언가를 끼워넣는다'는 개념으로 이해하며 공부했습니다.

 

 

01. 할당 연산자 =

02. 저장 프로퍼티 (Stored Property)

03. 연산 프로퍼티 (Computed Property)

04. print()

05. 한 줄 텍스트

06. 멀티라인 텍스트

07. 문자 보간(String Interpolation)

08. 한 줄 주석

09. 멀티라인 주석

10. 함수의 기본 형태 

 

 

01. 할당 연산자  =

 

A = B

  • 프로그래밍 언어에서 이 표현은 “*B 값을 A에 할당한다”*는 의미
  • 우변에 있는 좌변변수에 할당
let color = "purple"
print(color) // 출력값: purple
var foodName = "사과"
var fruitName = "포도"
foodName = fruitName
print(foodName) // 출력값 : 포도
// 변수 여러개를 한번에 선언하고 값을 할당하는 방법
var a = 1, b = 2, c = 3

 

02. 저장 프로퍼티 (Stored Property)

 

let

  • 변경할 수 없는 상수(Constant)를 선언할 때 사용
let name = "철수"
name = "영희" // 🚨Error: Change 'let' to 'var' to make it mutable

 

 

var

  • 변경할 수 있는 변수(Variable)를 선언할 때 사용
var age = 10
age = 50

 

 

03. 연산 프로퍼티 (Computed Property)

 

 var

  • 연산 프로퍼티는 그 때 그 때 계산한 값을 알려주기 때문에 변수를 나타내는 var를 사용하여 선언(**let은 불가능)
  • 매번 계산하기 때문에 값을 저장하지 않음
var x = 10
var y = 20

// 👇🏻 sum이 연산 프로퍼티
var sum: Int {
    get {
        return x + y
    }
    set {
        sum = x + y
    }
}

print(sum)
// 출력값: 30

// get, set 중 get만 필요한 경우에는 키워드 생략 가능
var sum1: Int {
		return x + y
}

// 아래와 같이 더 축약 가능
var sum2: Int {
		x + y
}

 

 

04. print ()
  • 큰 따옴표 "" 사이의 문자는 NONCODE로 인식하여, 문자열을 통째로 출력
print("Hello World 🌍") // 출력값: Hello World 🌍

 

05. 한 줄 텍스트
  • “내용” 을 사용하여 표현
var greeting = "Hello World 🌍"

 

06. 멀티라인 텍스트
  • “""내용""” 을 사용하여 표현
var greeting = """
				Hello 
				World 
				🌍 
				"""

 

07. 문자 보간(String Interpolation)
  • /() 를 사용하여 표현
  • 변수 또는 상수 등의 값을 문자열 내에 나타내고 싶을 때 사용
let name = "정종"
var greeting = "Hello \(name) 🌍" // 출력값: Hello 정종 🌍

let height = 185
let myInfo = "My height is \(height) 🌍"  // 출력값: My height is 185 🌍

 

08. 한 줄 주석
  • //내용 을 사용하여 표현
// 한 줄 주석

 

09. 멀티라인 주석
  • /**/ 를 사용하여 표현
/*
여러줄
주석
입니다
*/

 

10. 함수 기본 형태

 

함수

  1. 기능의 수행: 함수는 특정 작업이나 기능을 수행하는 코드의 블록으로 이 코드 블록은 호출될 때 실행되며, 함수 내에 정의된 코드들이 순차적으로 실행
  2. 재사용성: 함수는 코드를 모듈화하고, 같은 기능을 반복하여 사용할 수 있도록 한다. 이는 코드의 중복을 피하고, 유지보수를 용이하게 만들어준다.
  3. 매개변수(Parameter): 함수는 입력값을 받을 수 있다. 이러한 입력값은 함수의 매개변수에 의해 받아들여진다. 이 매개변수들은 함수 내부에서 사용되어 특정한 작업을 수행하는 데 활용된다.
  4. 반환값(Return Value): 함수는 어떤 값을 반환할 수도 있다. 반환값은 함수가 실행되고 작업이 완료된 후에 호출 지점으로 반환된다.
  5. 함수 타입: Swift에서는 함수도 하나의 타입으로 취급될 수 있다. 이는 함수를 다른 함수의 매개변수로 전달하거나 함수를 다른 함수의 반환값으로 사용할 수 있음을 의미한다. 이를 통해 함수를 동적으로 조작하고 조합할 수 있다.

+ 메서드란? 함수와 메서드의 차이는?

함수(Function)와 메서드(Method)는 유사한 기능을 수행하지만, 그들 간에는 몇 가지 중요한 차이가 있다.

  1. 정의와 소속성:
    • 함수는 독립적으로 정의되어 있으며, 특정한 객체나 타입에 속해 있지 않다. 일반적으로 전역 범위에서 정의되거나 특정 범위 내에 내장된다.
    • 메서드는 클래스, 구조체, 열거형 등의 특정한 타입에 속해 있다. 객체 지향 프로그래밍에서 해당 객체의 특정한 기능을 수행하기 위해 사용된다.
  2. 호출 방식:
    • 함수는 직접적으로 호출된다. 예를 들어, **addNumbers(5, 3)**와 같이 함수 이름 뒤에 괄호를 사용하여 호출된다.
    • 메서드는 해당하는 객체 또는 타입에 대해 호출된다. 예를 들어, **myObject.increment()**와 같이 객체 또는 타입 인스턴스 뒤에 메서드 이름을 호출한다.
  3. 소속성:
    • 함수는 특정한 객체의 속성이나 상태에 접근할 수 없으며, 주어진 매개변수를 받아들여 작업을 수행하고 값을 반환하는데 집중된다.
    • 메서드는 객체 또는 타입의 속성에 직접적으로 접근할 수 있다. 이는 메서드가 해당 객체의 상태를 변경하거나 속성에 접근하여 작업을 수행하는 데 사용된다.

간단히 말해, 함수는 특정한 타입에 속하지 않으며 독립적으로 정의되며 호출되고,
메서드는 특정한 타입에 속해 있으며, 해당 타입의 인스턴스에 대해 작동하고 상태를 변경할 수 있는 함수이다.


func 함수_이름(아규먼트_레이블: 파라미터_타입) -> 리턴_타입 {
  // ... 코드
}
// 네이밍 컨벤션으로 카멜케이스를 사용합니다 (ex- methodName 🙆🏻‍♀️ / method_name 🙅🏻‍♀️)

func sayHi(friend: String) {
  print("Hi~ \(friend)!")
}
sayHi(friend: "영호")


func sayHi(to friend: String) {
  print("Hi~ \(friend)!")
}
sayHi(to: "영호")


func sayHi(_ friend: String) -> String {
  return ("Hi~ \(friend)!")
}
print(sayHi("영호"))
// 출력값: Hi~ 영호!