///
Search
▶️

함수(Function)

1. 함수(Function)

Function
수학에서 어떤 숫자가 들어왔을 때 처리를 해서 출력하는 역할을 합니다.
값을 입력받아 특정 연산을 수행하여 결과를 반환하는 역할을 합니다.

2. Swift 함수 문법

func 함수이름 -> 반환타입 { 구현체 반환값 }
Swift
복사

3. Java 함수(메소드) 문법

public (static) 반환타입 함수이름 { 구현체 반환값 }
Java
복사

4. 스코프(Scope)

Scope
변수는 선언된 블록 내에서만 접근할 수 있습니다.
함수간 작업의 완벽한 분담을 위해 스코프가 존재합니다.

5. 포인터(Pointer)

Pointer
값을 저장하는 것이 아닌, 값의 위치(메모리 주소)를 저장하는 변수입니다.
해당 주소가 가리키는 곳으로 접근하면 실제 저장되어 있는 값을 알 수 있습니다.
작성한 코드가 컴퓨터 내부적으로 어떻게 동작하는지에 대한 원리는 반드시 파악하고 있어야 하기 때문에 포인터의 개념이 중요합니다.

6. 메모리(Memory)

Memory
자료의 저장단위 : 비트(Bit), 바이트(Byte), 킬로바이트(KB), 메가바이트(MB), 기가바이트(GB)...
RAM(Random Access Memory) : 자료를 저장하기 위한 장치, 위치마다 접근하는데 걸리는 시간이 비슷하기 때문에 Random이라고 합니다.
PC의 운영체제가 우리가 흔히 알고 있는 64bit 운영체제, 32bit 운영체제라는 것은 메모리 하나의 주소의 크기가 64bit, 32bit라고 할 수 있습니다.
즉, 메모리의 주소 하나가 최대로 담을 수 있는 용량이 8Byte(64bit), 4Byte(32bit)라는 말과 동일합니다.
Big Endian, Little Endian : 컴퓨터가 값을 저장하는 순서, 높은 숫자 부터 저장하는 것이 Big Endian, 낮은 숫자부터 저장하는 것이 Little Endian

7. Call By Value vs Call By Reference

Call By Value vs Call By Reference
call by value : 값에 의한 호출, 변수의 값을 복사해서 인자로 넘겨줌. 따라서 원본의 값이 변경되지 않습니다.
call by reference: 참조에 의한 호출, 변수의 주소를 인자로 넘겨줌. 따라서 원본의 값이 변경됩니다.

8. Swift에서의 Array

Swift에서의 Array
Swift에서 Array는 struct 즉, 값 타입이기 때문에 전달인자로 전달될 때 값이 복사돼서 넘어갑니다.
Call By Value를 Call By Reference 처럼 사용할 수 있는 방법이 있지만, 권장하지 않는 방법입니다.
단, 아래와 같이 정확한 목적이 있는 경우에는 inout 키워드와 &(주소)값을 넘김으로써 사용할 수도 있습니다.
func swap(_ a: inout Int, _ b: inout Int) -> Void { let temp: Int = a a = b b = a } func solution() -> Void { var a: Int = 5 var b: Int = 10 swap(&a, &b) print(a, b) // 10, 5 } solution()
Swift
복사