3월 21일 배운 것을 정리하다가 든 생각

송경근·2023년 5월 13일
0

배우다가 든 생각

목록 보기
2/2

배열에 대해 배웠었다.
이 때엔 정렬도, 어레이가 무엇인지도, 어레이리스트가 무엇인지도, 배열을 어떻게 써야할지도 몰랐었던것같다.
제너릭 타입이 무엇인지도 몰랐으니 말이다. 언어를 배우는건 다 그런가? 일단 써보고 나중에 다시 개념을 알려주는... 하긴 처음부터 모든 걸 다 알고 쓸 필요는 없다는 생각이 든다. 가변 개수 인수가 무엇인지 검색해서 정리해보겠다.

chat GPT야 가변개수인수가 뭐냐

자바에서 가변 개수 인수를 나타내는 문법은 "varargs"라고도 불립니다.

가변 개수 인수를 사용하기 위해서는 메서드 선언 시 매개변수 타입 앞에 ...을 붙여주면 됩니다. 다음은 자바에서 가변 개수 인수를 사용하는 예제입니다:

public void myMethod(String... args) {
// 메서드 내부에서 args는 배열로 처리됩니다.
for (String arg : args) {
System.out.println(arg);
}
}

위의 예제에서 String... args는 가변 개수의 문자열 인수를 나타냅니다. 메서드를 호출할 때 전달된 모든 인수는 args라는 배열로 묶여 메서드 내부로 전달됩니다. 따라서 메서드 내부에서는 args 배열을 순회하거나 인덱스를 통해 개별적인 인수에 접근할 수 있습니다.

자바에서도 가변 개수의 키워드 인수를 사용할 수 있습니다. 다음은 키워드 인수를 받는 예제입니다:

java
Copy code
public void myMethod(Map<String, Integer>... maps) {
// 메서드 내부에서 maps는 배열로 처리됩니다.
for (Map<String, Integer> map : maps) {
// 각 맵에 대한 작업 수행
}
}
위의 예제에서 Map<String, Integer>... maps는 가변 개수의 맵 인수를 나타냅니다. 메서드를 호출할 때 전달된 모든 맵은 maps라는 배열로 묶여 메서드 내부로 전달됩니다. 따라서 메서드 내부에서는 maps 배열을 순회하거나 인덱스를 통해 개별적인 맵에 접근할 수 있습니다.

자바의 가변 개수 인수는 메서드 오버로딩을 대체할 수 있는 유용한 기능이며, 유연하게 다양한 인수를 전달할 수 있도록 해줍니다. 다만, 가변 개수 인수는 마지막 매개변수로만 사용할 수 있으며, 한 번에 하나의 가변 개수 인수만 사용할 수 있습니다.

그러니까 매개변수의 숫자를 임의로 조절할 수 있는 기능같다

profile
개발자가 되려는 학생입니다

0개의 댓글