태그: 함수
10편
-
Swift 함수와 클로저 | 함수 정의, 클로저, 고차 함수
인자 레이블과 매개변수 이름, 기본값, 가변 매개변수, inout에서 시작해 함수 타입과 고차 함수, trailing closure, 캡처 리스트와 weak·unowned, @escaping과 @autoclosure, 커스텀 연산자까지 Swift 함수와 클로저를 한 흐름으로 설명합니다.
-
JavaScript 함수: 선언식, 화살표 함수, 콜백, 클로저
함수 선언문·함수 표현식·화살표 함수의 차이, 기본값·나머지·구조 분해 매개변수, 고차 함수와 클로저로 만드는 프라이빗 변수, this 바인딩과 bind·call·apply, 콜백과 IIFE까지 예제로 정리합니다.
-
Kotlin 함수 | 함수 정의, 람다, 고차 함수
Kotlin 함수의 기본 매개변수와 가변 인자, 람다식 문법, 함수를 받고 돌려주는 고차 함수, 확장 함수, let·apply·also·run·with 스코프 함수, inline 함수를 DSL 스타일 예제까지 이어서 설명합니다.
-
C++ 이름 은닉(Name Hiding): 파생 클래스에서 기반 오버로드가 안 보일 때 using 선언
파생 클래스에 같은 이름의 함수를 하나만 선언해도 기반 클래스의 오버로드 전체가 가려지는 이름 은닉의 원리를 설명하고, using 선언으로 되살리는 법과 오버로딩·오버라이딩·은닉의 차이를 생성자와 연산자 예시로 정리합니다.
-
Python 함수: 매개변수, 반환값, 람다, 데코레이터
위치·키워드·기본값 인자와 *args, **kwargs 규칙부터 람다, nonlocal을 쓰는 클로저, 데코레이터 작성까지 Python 함수를 예제로 익힙니다. 마지막에는 클로저가 cell 객체로 값을 붙잡는 방식과 @ 문법이 실제로 풀리는 모습을 CPython 관점에서 봅니다.
-
C++ 함수 처음 만들기: 선언과 정의, 값·참조 전달, 오버로딩, 기본 인자 (예제 10개)
함수를 처음 만들 때 필요한 선언과 정의의 분리, 값·참조·포인터 전달의 차이, return 규칙, 기본 매개변수, 오버로딩을 예제 10개로 익힙니다. 지역 변수 주소 반환, 오버로딩 모호성, 선언 전 호출 같은 초보자 실수도 짚습니다.
-
C++ STL 알고리즘 자주 쓰는 함수 20개: sort·lower_bound·accumulate·remove_if
C++ STL <algorithm>에서 자주 쓰는 함수 20개(sort, find, lower_bound, accumulate, transform, remove_if 등) 예제 정리. erase-remove 관용구와 binary_search 전제 조건 같은 실수도 다룹니다.
-
C++ inline의 진짜 의미: 인라인 확장이 아니라 ODR 예외, inline 변수와 constexpr
inline은 호출을 펼치라는 명령이 아니라 헤더에 정의를 두어도 링크 에러가 나지 않게 하는 ODR 예외입니다. 실제 인라인 확장은 컴파일러가 결정한다는 점, 큰 함수와 재귀·가상 함수의 한계, C++17 inline 변수와 constexpr의 관계를 예제로 봅니다.
-
C++ 함수 오버로딩: 오버로드 해석 순서와 모호한 호출이 생기는 경우
같은 이름의 함수 중 어떤 것이 호출될지 컴파일러가 정하는 오버로드 해석 순서를 설명하고, 반환 타입만 다른 오버로딩이 불가능한 이유, const 오버로딩, 기본 인자 때문에 생기는 모호한 호출, 배열이 포인터로 바뀌는 함정을 예제로 풀어 봅니다.
-
C++ 기본 인자 규칙: 헤더에만 두는 이유와 가상 함수에서 생기는 함정
C++ 기본 인자를 오른쪽부터 채워야 하는 규칙, 헤더 선언에만 기본값을 두고 재선언에서 반복하면 안 되는 이유, 가상 함수에서 기본값이 정적 타입 기준으로 결정되는 함정, 오버로딩과 충돌하는 경우를 예제로 설명합니다.