2.1.6 선택적 인자와 Nullable

2.1.6 선택적 인자와 Nullable

nullability를 고려할 때 선택적 인자(optional arguments)도 반드시 고려해야 해요. nullable이 아닌 네이티브 선택적 인자와, nullable일 수 있는 Haxe 특유의 선택적 인자를 구분할 필요가 있습니다. 이 구분은 물음표를 붙인 선택적 인자를 통해 이루어집니다:

// x is a native Int (not nullable)
function foo(x : Int = 0) {}
// y is Null (nullable)
function bar( ?y : Int) {}
// z is also Null
function opt( ?z : Int = -1) {}

정의 관련 참고(Argument vs. Parameter) — 어떤 다른 프로그래밍 언어에서는 argument와 parameter를 혼용하기도 해요. Haxe에서는 메서드를 가리킬 때는 "argument"를, 타입 매개변수(Type Parameters)를 가리킬 때는 "parameter"를 사용합니다.

출처: Optional Arguments and Nullability

본문

네이티브 선택적 인자 vs Haxe 선택적 인자

인자에 기본값만 붙인 것(x : Int = 0)은 nullable이 아닌 네이티브 선택적 인자로 취급돼요. 반면 물음표 ?를 붙인 것은 nullable인 Haxe 선택적 인자입니다. 물음표와 기본값을 함께 쓴 것(?z : Int = -1)도 nullable한 선택적 인자로 처리됩니다.

이 구분은 null 가능성에 대한 타입 레벨의 명시적인 정보를 제공해요. 코드의 의도를 더 정확히 전달하고, 대상 플랫폼의 null 동작 차이를 예측 가능하게 만듭니다.

용어 구분

Haxe에서는 함수의 매개변수를 가리킬 때 "argument"라는 용어를 쓰고, 타입 매개변수(제네릭)를 가리킬 때는 "parameter"라는 용어를 사용해요. 이 둘을 혼동하지 않도록 주의하는 것이 좋습니다.

더 알아보기