변수 및 함수 이름에 밑줄을 사용하는 이유
경우에 따라 변수 및 함수 이름 앞에 밑줄이 붙습니다. 예를 들어 _Print()는 다음과 같습니다.
변수명은 사실 작성자의 머리이기 때문에 코드를 작성한 사람에게 물어보지 않는 이상 확실히 알 수는 없지만, 다음과 같은 이유로 많이 사용된다고 합니다.
- 범위 내에서만 사용되는 개인 변수/함수에 사용됨
- JavaScript를 사용하면 액세스 제한(비공개, 공개)이 없습니다. 따라서 개인 액세스 수정자를 표시하는 데 사용됩니다.
- 절차적 언어인 C언어에서 객체지향 언어와 유사한 구조를 구현할 때 private을 지정하기 위해 사용한다.
예
CustomViewModel 클래스의 변수 데이터는 값이 클래스 외부에서 직접 변경될 수 없도록 캡슐화되어야 합니다. 그러나 클래스 내부에서 값을 변경할 수 있어야 하므로 값을 변경할 수 있는 다른 _data를 만듭니다. 그리고 data는 _data의 값을 가져옵니다. 이 경우 클래스 내부에서만 사용되는 변수 _data와 클래스 외부에서 사용되는 변수 data가 있습니다. 둘의 목적이 같기 때문에 변수 이름도 같고 밑줄 유무만 구분하면 코드를 직관적으로 살펴볼 수 있다.
CustomViewModel(): ViewModel(){
private val customAPI = CustomAPI()
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun GetData(): {
_data.value = customAPI.GetData()
}
}
