하드코드 인코딩이란?
상황1, 예를 들어 우리는 메일을 발송하는 프로그램, 사용자 이름, 비밀번호, 서버 주소 등 설정 정보를 외부 설정으로 작성하고 프로그램 코드에서 설정 정보를 읽는다.그러나 만약에 우리가 프로그램 코드에 직접 써서 죽으면 매번 정보를 바꿀 때마다 다시 컴파일해야 하고 여러 곳에서 프로그램 코드에 이런 설정 정보가 나타나면 수정하기도 비교적 번거롭다. 이런 프로그램은 유지하기가 쉽지 않다.대부분의 프로그램 언어에서 고정된 수치를 하나의 표시로 정의한 다음에 이 특수 표시로 변수의 이름을 대체할 수 있다.태그 이름이 바뀔 때 변수 이름이 변하지 않습니다. 그러면 전체 프로그램을 다시 컴파일할 때 모든 변수가 고정된 값이 아닙니다. 이렇게 하면 변수를 바꾸는 목적을 더욱 쉽게 실현할 수 있습니다.편집기의 검색 교체 기능도 전체 변수 이름의 교체를 실현할 수 있지만, 많이 바꾸거나 적게 바꾸는 경우도 있을 수 있고, 컴퓨터 프로그램에서 어떠한 작은 오류도 큰 문제를 가져올 수 있다.가장 좋은 방법은 단독으로 변수명에 공간을 나누어 이런 변화를 실현하는 것이다.변경해야 할 변수 이름을 잠시 정의된 태그 이름으로 대체합니다.상황2에 대해 마법값이란 코드에서 직접 나타나는 수치로 수치가 기술된 부분의 코드에서만 이 수치가 대표하는 의미를 명확히 할 수 있다.
int [] array = new int[20];
for (int i = 0; i < 20; i++){
System.out.print(array[i]);
}
위의 예에서 만약에 수조의 성명과 for 순환의 간격이 비교적 멀다면 for 순환 안의 제어 조건 i<20의 20이 무슨 의미인지 알기 어렵다.수조의 길이입니까, 아니면 수요에 따라 정의된 경계값입니까?의미가 모호할 수도 있어요.마법값은 코드의 가독성을 크게 떨어뜨린다.그리고 같은 수치가 여러 번 나오면 도대체 이 수치들이 같은 의미를 지니고 있는지 아무도 모른다.다른 한편, 같은 수치를 사용해야 하는 곳을 잘못 쓰면 발견하기 어렵다.따라서 우리는 마법 수치를 사용하지 않고static final로 상수를 정의하거나enum값을 사용해야 한다.
static final int LENGTH_OF_ARRAY= 20;
int [] array = new int[LENGTH_OF_ARRAY];
for (int i = 0; i < LENGTH_OF_ARRAY; i++){
System.out.print(array[i]);
}
위 코드는 static final을 사용하여 상수 LENGTH 를 정의합니다.OF_ARRAY= 20; for 루프의 제어 조건 i
하드코드는 고체화된 코드로 통상적으로 하드코드 방법을 사용하는 것을 피해야 한다.어떤 코드는 죽도록 쓸 수 없다. 그렇지 않으면 유지하기가 비교적 번거롭다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Eclipse 주석 날짜 형식Eclipse neon 버전 이전에 자동 주석 생성 날짜는 ${date}만 사용할 수 있습니다. 그 형식은 로컬 기본 형식입니다. 예를 들어 "xxx년 xx월 xx일". 수정하려면plugin에서 org를 수정해야 합...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.