2017-11-26 36 views
0

내가 (자바 스크립트에서) 이런 식으로 삼항 연산자를 사용하는 동료가 :삼항 연산자 내에서의 할당, 안티 패턴?

var genderLabel = ''; 
isMale? genderLabel = 'Man' : genderLabel = 'Woman'; 

C#에서를, 난 그냥 그렇게 할 것입니다.

var genderLabel = isMale? "Man" : "Woman"; 

제 동료는 자바 스크립트 코딩 규칙이라고 말합니다. 사실입니까? 나는 아무 자바 스크립트 전문가도 아니고 나는 그 언어를 싫어한다. 코드를 검토 할 때 변수의 초기화 나 할당을 따르기 위해 왼손쪽에 초점을 맞춘다. 그런 종류의 스타일은 내가 전체 라인을 읽도록 강요한다.

전직 직원의 Java 코드도 유지하고 있으며, 같은 방식으로 삼항 연산자를 사용합니다. 그게 안티 패턴인가요? 나는 그것이 컴파일러에 의해 그것이 if 문에서 허용되지 않는 것 같은 방법을 허용해야한다고 생각 :

if(x = 2) 
{ 
    ... 
} 

이것은 C#으로 컴파일되지 않습니다.

+3

이전에는 본 적이 없었습니다. 반복에서 더 많은 공간을 차지할뿐만 아니라 복잡하고 의미 론적으로 이상합니다. – Li357

답변

2

제 동료는 자바 스크립트 코딩 협약이라고 말합니다. 사실입니까?

번호

는 안티 패턴인가?

보통 자체 라인하지만이

isMale ? genderLabel = 'Man' : genderLabel = 'Woman'; 

는 식 genderLabel의 설정 값의 부작용으로하고, 명령문이다. 그게 좋은 습관인가요? 나는 다음이 가능해야합니다, 당신이 그 좋은 사례라고 생각하지만 경우, 모르는 :

var a = 1, b = 2; 
b = [a][a = b, 0]; # swap a and b 

당신의 동료는 잘 할 수 있습니다

if(isMale) genderLabel = 'Man'; 
else  genderLabel = 'Woman'; 

훨씬 명확 .