program tip

문장에서 물음표와 콜론은 의미합니까?

radiobox 2020. 11. 24. 07:50
반응형

문장에서 물음표와 콜론은 의미합니까? 무슨 뜻이에요?


무엇입니까? 콜론은?

 ((OperationURL[1] == "GET") ? GetRequestSignature() : "")

다음 문장에서 ...

string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");

이것은 조건부 연산자 표현식입니다.

(condition) ? [true path] : [false path];

예를 들면

 string value = someBooleanExpression ? "Alpha" : "Beta";

따라서 부울 표현식이 참이면 값은 "알파"를 유지하고 그렇지 않으면 "베타"를 유지합니다.

사람들이 빠지는 일반적인 함정 에 대해서는 C # 태그 위키 에서이 질문참조하십시오 .


삼항 조건 연산자 입니다.

앞의 괄호 안의 조건 ?이 참이면의 왼쪽에있는 값을 반환하고 :그렇지 않으면 오른쪽에있는 값을 반환합니다.


삼항 연산자이거나 그렇지 않은 경우 짧은 형식입니다.

질환 ? true 인 경우 값 : false 인 경우 값

주제에 대한 자세한 정보에 대한 링크입니다.

편집 : 링크 고정


제공 한 특정 경우에는 조건부 할당입니다. 물음표 (?) 앞의 부분은 부울 조건이고 콜론 (:)의 양쪽 부분은 조건의 결과에 따라 할당 할 값입니다 (콜론의 왼쪽은 true, 오른쪽의 값) side는 false의 값입니다).


string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : "");

다음으로 번역 할 수 있습니다.

string requestUri="";
if ((OperationURL[1] == "GET")
{
    requestUri = _apiURL + "?e=" + GetRequestSignature();
}
else
{
   requestUri = _apiURL + "?e=";
}

이것은 "인라인 if"또는 위의 삼항 연산자라고도합니다. https://en.wikipedia.org/wiki/%3F :

코드를 줄이는 데 사용되지만 코드 유지 관리가 상당히 어려워 질 수 있으므로 한 줄에 많은 것을 사용하는 것은 권장되지 않습니다. 상상해보십시오.

a = b?c:(d?e:(f?g:h));

그리고 당신은 잠시 갈 수 있습니다.

기본적으로 다음과 같이 작성합니다.

if(b)
  a = c;
else if(d)
  a = e;
else if(f)
  a = g;
else
  a = h;

귀하의 경우 "string requestUri = _apiURL +"? e = "+ OperationURL [0] + ((OperationURL [1] =="GET ")? GetRequestSignature () :" ");"

다음과 같이 쓸 수도 있습니다. (빈 문자열이므로 else 생략)

string requestUri = _apiURL + "?e=" + OperationURL[0];
if((OperationURL[1] == "GET")
    requestUri = requestUri + GetRequestSignature();

또는 다음과 같이 :

string requestUri;
if((OperationURL[1] == "GET")
    requestUri = _apiURL + "?e=" + OperationURL[0] + GetRequestSignature();
else
    requestUri = _apiURL + "?e=" + OperationURL[0];

선호도 / 상사가 사용하라고하는 코드 스타일에 따라.


"OperationURL [1]"이 "GET"으로 평가되면 "GetRequestSignature ()"를 반환하고 그렇지 않으면 ""를 반환합니다. 여기서 "GetRequestSignature ()"가 문자열을 반환한다고 생각합니다. 구문 CONDITION? A : B는 기본적으로 CONDITION이 참일 때 A가 반환되고 CONDITION이 거짓 일 때 B가 반환되는 if-else를 의미합니다.

참고 URL : https://stackoverflow.com/questions/6957214/question-mark-and-colon-mean-in-statement-what-does-it-mean

반응형