2010-12-22 3 views
3

나는 3 차원 속기에 대해 읽었으며, 그렇지 않다면 내 모든 전통적인 (또는 대부분의) if/else 문을 3 진법으로 대체하는 것이 더 합리적인 것인지 궁금해하고 있습니까? 그게 더 빨리 달릴까요? 아니면 이점이 코드가 적다는 사실에 있습니까?모든 if/else 문을 3 진법으로 대체해야합니까? if/else? (PHP)

통찰력을 가져 주셔서 감사합니다.

+2

삼항 연산자에는 이점이 없습니다. 뿐만 아니라 오렌지가 넘는 사과에는 이점이 없습니다. 그냥 다른 방법으로 할 수 있습니다. 바보가되지 마라, 뭔가를하는 "완벽한"방법을 찾지 마라. 세상에 그런 것이 없다. –

+4

Col. Shrapnel에 신경 쓰지 마라. 그의 부모님은 몇 시간 동안 옷장에 그를 가두곤했습니다. 삼진을 최대한 활용하려면이 게시물을 확인하십시오. http://stackoverflow.com/questions/160218/to-ternary-or-not-to-ternary – webbiedave

답변

0

다른 ifs를 추가 하시겠습니까? 또한 삼항법은 실제로 더 빠르지 않습니다.

0

삼항수는 코드를 빠르게 실행하지 않습니다.이 코드는 바로 가기 일뿐 아니라 읽기가 더 힘듭니다. if/else 문을 삼항으로 바꾸는 것에 매우 신중해야합니다.

각 절에 if/else 체인에 한 줄이있는 경우 (그리고 다른 if 문이 아닐 경우) 코드를 3 진수로 안전하게 줄이고 이해할 수있게되면 누구든지 신뢰할 수 있습니다. 그것. 그러나 코드에 여러 줄 또는 중첩 된 if 문이있는 경우 해당 문을 3 진수로 변환하면 안됩니다.이 경우 복잡도가 더해집니다.

1

아니요, 이들은 동일한 코드로 컴파일/해석됩니다.

결국 코드를 ​​읽기 어렵고 유지 관리하기가 어려워집니다.

7

확실한 선택이있는 경우 기본 논리에 대해 3 진 if/then 문을 사용해야합니다. ternary if/then 문을 중첩하기 시작할 때 변경 사항을 수정하거나 버그를 수정해야 할 때 자신이나 미래의 후임자에게 더 많은 두통을 남기고 있습니다.

속도 향상의 경우 3 진 또는 일반 진술의 차이점을 볼 수 없습니다. 그러나 파일 크기에서 몇 바이트를 줄일 수는 있지만 원격으로는 충분하지 않을 수 있습니다.

+2

+1 "미래 선임자"에 대해서는 잘 모르겠지만. 나는 그것이 "후계자"라고 불릴 것이라고 생각한다. ;) – netcoder

+0

웁스! 그것을 잡아 주셔서 감사합니다! –

6

그것은 무의미합니다. Ternary는 매우 "원시적 인"조건에서만 유용하며 대부분은 더 복잡합니다.

아무 것도 얻지 못할 시간이 많이 남습니다.

1

성능 향상이 전혀 없습니다. 그것의 진짜로 읽는 것이 더 쉽습니다. if-else 구문이 많다면 남겨두면 더 쉬울 것입니다. 세번째 문장은 일반적으로 $var = $bool ? "IF TRUE" : "IF FALSE"과 같은 조건 할당에 사용됩니다. 코드 실행을 분기하기 위해 if 문을 수행하는 경우에는 3 진법이 실제로 이해가되지 않습니다.

3

코드는 컴퓨터가 아닌 사람을 대상으로 작성되었으며 일부 사람들은 삼항 연산자를 사용하여 읽기 어렵다고합니다.

필자는 개인적으로 프로그래머로서 귀하의 강조점을 읽기 쉽도록하고 싶습니다.

0

나는 나이가 들었을 때의 if를 변경하는 것이 내가 일하는 프로젝트에서 추천하는 것이라고 생각하지 않는다. 이전 버전과의 호환성에 대해 생각해보십시오. 새로운 시스템에 프로젝트를 배포하지 않으면 제대로 작동하지 않을 수 있습니다.

그리고 속도를 높이려고한다면이 문제에 대해 더 나은 방법이 있다고 생각합니다.

그래서, 요약하기, 난 당신이 기존 코드를 리팩토링 할 때의

0

아니라이 정의 인스턴스를 해달라고 생각합니다.

if then regular 문을 ternary로 변경하는 것은 그 중 하나가 아닙니다.

성능 이점이 전혀 없으며 코드가 간결하고 때로는 더 읽기 쉽게 만들어줍니다.

0

이 대화는 오래된 대화이지만, VS2010, .NET 4.0을 사용하고 있고 3 진 연산자는 동등한 if-then 문보다 18 %에서 22 % 사이의 일관성을 유지합니다.

+1

PHP에 관한 질문을 본 적이 있습니까? – kapa