나는 3 차원 속기에 대해 읽었으며, 그렇지 않다면 내 모든 전통적인 (또는 대부분의) if/else 문을 3 진법으로 대체하는 것이 더 합리적인 것인지 궁금해하고 있습니까? 그게 더 빨리 달릴까요? 아니면 이점이 코드가 적다는 사실에 있습니까?모든 if/else 문을 3 진법으로 대체해야합니까? if/else? (PHP)
통찰력을 가져 주셔서 감사합니다.
나는 3 차원 속기에 대해 읽었으며, 그렇지 않다면 내 모든 전통적인 (또는 대부분의) if/else 문을 3 진법으로 대체하는 것이 더 합리적인 것인지 궁금해하고 있습니까? 그게 더 빨리 달릴까요? 아니면 이점이 코드가 적다는 사실에 있습니까?모든 if/else 문을 3 진법으로 대체해야합니까? if/else? (PHP)
통찰력을 가져 주셔서 감사합니다.
다른 ifs를 추가 하시겠습니까? 또한 삼항법은 실제로 더 빠르지 않습니다.
삼항수는 코드를 빠르게 실행하지 않습니다.이 코드는 바로 가기 일뿐 아니라 읽기가 더 힘듭니다. if/else 문을 삼항으로 바꾸는 것에 매우 신중해야합니다.
각 절에 if/else 체인에 한 줄이있는 경우 (그리고 다른 if 문이 아닐 경우) 코드를 3 진수로 안전하게 줄이고 이해할 수있게되면 누구든지 신뢰할 수 있습니다. 그것. 그러나 코드에 여러 줄 또는 중첩 된 if 문이있는 경우 해당 문을 3 진수로 변환하면 안됩니다.이 경우 복잡도가 더해집니다.
아니요, 이들은 동일한 코드로 컴파일/해석됩니다.
결국 코드를 읽기 어렵고 유지 관리하기가 어려워집니다.
확실한 선택이있는 경우 기본 논리에 대해 3 진 if/then 문을 사용해야합니다. ternary if/then 문을 중첩하기 시작할 때 변경 사항을 수정하거나 버그를 수정해야 할 때 자신이나 미래의 후임자에게 더 많은 두통을 남기고 있습니다.
속도 향상의 경우 3 진 또는 일반 진술의 차이점을 볼 수 없습니다. 그러나 파일 크기에서 몇 바이트를 줄일 수는 있지만 원격으로는 충분하지 않을 수 있습니다.
+1 "미래 선임자"에 대해서는 잘 모르겠지만. 나는 그것이 "후계자"라고 불릴 것이라고 생각한다. ;) – netcoder
웁스! 그것을 잡아 주셔서 감사합니다! –
그것은 무의미합니다. Ternary는 매우 "원시적 인"조건에서만 유용하며 대부분은 더 복잡합니다.
아무 것도 얻지 못할 시간이 많이 남습니다.
성능 향상이 전혀 없습니다. 그것의 진짜로 읽는 것이 더 쉽습니다. if-else 구문이 많다면 남겨두면 더 쉬울 것입니다. 세번째 문장은 일반적으로 $var = $bool ? "IF TRUE" : "IF FALSE"
과 같은 조건 할당에 사용됩니다. 코드 실행을 분기하기 위해 if 문을 수행하는 경우에는 3 진법이 실제로 이해가되지 않습니다.
코드는 컴퓨터가 아닌 사람을 대상으로 작성되었으며 일부 사람들은 삼항 연산자를 사용하여 읽기 어렵다고합니다.
필자는 개인적으로 프로그래머로서 귀하의 강조점을 읽기 쉽도록하고 싶습니다.
나는 나이가 들었을 때의 if를 변경하는 것이 내가 일하는 프로젝트에서 추천하는 것이라고 생각하지 않는다. 이전 버전과의 호환성에 대해 생각해보십시오. 새로운 시스템에 프로젝트를 배포하지 않으면 제대로 작동하지 않을 수 있습니다.
그리고 속도를 높이려고한다면이 문제에 대해 더 나은 방법이 있다고 생각합니다.
그래서, 요약하기, 난 당신이 기존 코드를 리팩토링 할 때의아니라이 정의 인스턴스를 해달라고 생각합니다.
if then regular 문을 ternary로 변경하는 것은 그 중 하나가 아닙니다.
성능 이점이 전혀 없으며 코드가 간결하고 때로는 더 읽기 쉽게 만들어줍니다.
이 대화는 오래된 대화이지만, VS2010, .NET 4.0을 사용하고 있고 3 진 연산자는 동등한 if-then 문보다 18 %에서 22 % 사이의 일관성을 유지합니다.
PHP에 관한 질문을 본 적이 있습니까? – kapa
삼항 연산자에는 이점이 없습니다. 뿐만 아니라 오렌지가 넘는 사과에는 이점이 없습니다. 그냥 다른 방법으로 할 수 있습니다. 바보가되지 마라, 뭔가를하는 "완벽한"방법을 찾지 마라. 세상에 그런 것이 없다. –
Col. Shrapnel에 신경 쓰지 마라. 그의 부모님은 몇 시간 동안 옷장에 그를 가두곤했습니다. 삼진을 최대한 활용하려면이 게시물을 확인하십시오. http://stackoverflow.com/questions/160218/to-ternary-or-not-to-ternary – webbiedave