Programming/Go-Lang

Go-Lang: mixed named and unnamed parameters 에러 조치

근육곰돌이 2024. 2. 22. 18:08
728x90

Go-Lang에서 간혹 함수를 쓰다보면 종종 아래와 같은 에러를 만날수 있다.

mixed error

해당 에러에 대한 내용을 한번 정리하고 가면 나중에 편하게 조치할 수 있기에 알아두자. (필자는 메모용.. ^^)

 

1. 에러

mixed named and unnamed parameters

 

 

2. 원인

원인은 " func에서 매개변수를 처리하는 방법"에서 사용을 잘못해서 그렇다. 
func 매개변수 변수명은 하려면 다 써야하거나 또는 다 쓰지 않아야 한다.

위의 예제를 보면

type ObjInter interface {
	Exist(context.Context, aggregateId string) (bool, error)
}

context.Context 오브젝트는 매개변수명이 없고, string은 매개변수명이 "aggregateId"라고 존재한다.
이때 에러가 발생한다.

 

3. 조치

- 매개변수를 모두 쓰는 것

type ObjInter interface {
	Exist(ctx context.Context, aggregateId string) (bool, error)
}

- 매개변수를 모두 쓰지 않는 것

type ObjInter interface {
	Exist(context.Context, string) (bool, error)
}

두가지 방법 중 본인의 코드 스타일에 맞추면 됩니다. 

 

 

저는 개인적으로 쓰는편입니다.
인터페이스형식에는 해당 매개변수 타입만으로는 의미하는 바를 모르기 때문에, 의미 부여해서 적어둡니다. ^^

반응형