파라미터와 매개변수, 사람들과 이야기할 때 자주 사용하는 단어이다.
어떤 사람들은 파라미터를 쓰고, 다른 사람은 매개변수라고 말하는데 두개 모두 함수에 전달하는 값을 의미하는 것 같은데 도대체 정확한 정의가 무엇인지, 왜 단어가 두개이고 혼용해서 사용해도 괜찮은 것인지 헷갈려서 찾아보았다.
https://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter
What's the difference between an argument and a parameter?
When verbally talking about methods, I'm never sure whether to use the word argument or parameter or something else. Either way the other people know what I mean, but what's correct, and what's the
stackoverflow.com
구글링을 하였을 때 가장 먼저 나오는 스택오버플로의 답변은 파라미터는 함수의 정의, 선언에서 사용되는 변수를 뜻하고, 아규먼트는 함수를 호출하여 인자를 전달할 때 사용하는 변수들을 의미한다고 한다.
수학에서는 어떤 두 식 x = t+1, y = t^2 가 있을 때, 두 식을 묶어주는 변수 t를 매개변수라고 한다.
프로그래밍에서도 int a = abc(x) 명령어와 int abc(x){} 함수 선언 사이에 관계를 만들어 준다는 점에서 수학에서의 쓰임과 유사한 점이 있어서 혼용해서 사용하는 것 같고, 한글위키에서 수학의 매개변수 정의나 컴퓨터 프로그래밍의 매개변수 정의 모두 파라미터가 포함되어 있으며, 영문위키에서도 파라미터가 흔히 아규먼트(지역변수)처럼 사용된다고 언급하고 있다.
따라서 그냥 편한대로 써도 상관 없을 것 같다.
근데 두 단어의 차이를 알고 나니까 Java Main의 (String[] args)는 왜 메인함수의 선언인데 아규먼트의 약자를 썼을까 하는 생각과, sysparam이나 .param()등으로 자주 보이는 함수들은 왜 그렇게 썼을까 궁금해진다.
parameter : 함수,메서드의 선언에 사용되는 변수
arguments : 지역변수, 함수호출시 parameter에 전달되는 데이터
'IT > VS' 카테고리의 다른 글
[JavaScript] NPM vs Yarn (0) | 2023.07.14 |
---|---|
[Java] StringBuilder VS BufferedWriter (0) | 2023.04.02 |
[Shell] $*과 $@의 차이 (0) | 2022.07.30 |