«operators» 태그된 질문

프로그래밍 언어와 관련하여 연산자는 일반적으로 함수와 유사하게 동작하지만 구문 상 또는 의미 상 일반적인 함수와는 다른 구문입니다. Wikipedia에서 : http://en.wikipedia.org/wiki/Operator_%28programming%29

16
왜 사용자 정의 연산자가 더 일반적이지 않습니까?
함수형 언어에서 놓칠 수있는 기능 중 하나는 연산자는 함수일 뿐이므로 사용자 지정 연산자를 추가하는 것은 함수를 추가하는 것만 큼 간단합니다. 많은 절차 적 언어는 연산자 오버로드를 허용하므로 어떤 의미에서 연산자는 여전히 함수입니다 (이것은 연산자가 템플릿 매개 변수에 문자열로 전달되는 D 에서 매우 그렇습니다 ). 연산자 오버로드가 허용되는 경우 사용자 지정 …

7
단락 평가, 나쁜 연습입니까?
내가 오랫동안 알고 있지만 결코 고려하지 않은 것은 대부분의 언어에서 순서에 따라 if 문에서 연산자에 우선 순위를 부여 할 수 있다는 것입니다. 나는 종종 null 참조 예외를 방지하는 방법으로 이것을 사용합니다. if (smartphone != null && smartphone.GetSignal() > 50) { // Do stuff } 이 경우 코드는 먼저 개체가 null이 …

15
연산자 오버로드에 대한 주장을 이해하지 못합니다.
나는 조엘의 기사 중 하나를 읽었습니다 . 일반적으로, 나는 물건을 숨기는 언어 기능이 약간 무섭다는 것을 인정 해야 합니다. 코드가 보이면 i = j * 5; … C에서는 적어도 j에 5가 곱해지고 i에 저장된 결과가 있다는 것을 알고 있습니다. 그러나 C ++에서 동일한 코드 스 니펫을 보면 아무것도 모릅니다. 아무것도. …

25
삼항 운영자는 해로운 것으로 간주? [닫은]
예를 들어,이 단일 라이너를 선호합니까 int median(int a, int b, int c) { return (a<b) ? (b<c) ? b : (a<c) ? c : a : (a<c) ? a : (b<c) ? c : b; } 또는 여러 반환 문이 포함 된 if / else 솔루션입니까? ?:적절한 시기는 언제 입니까? …

6
빼기 부호 '-'가 일반적으로 더하기 부호와 같은 방식으로 오버로드되지 않는 이유는 무엇입니까?
더하기 부호 +는 더하기 및 문자열 연결에 사용되지만 그 동반자 인 빼기 부호 -는 일반적으로 문자열을 자르거나 빼기 이외의 다른 경우에는 표시되지 않습니다. 그 이유나 한계는 무엇입니까? JavaScript에서 다음 예제를 고려하십시오. var a = "abcdefg"; var b = "efg"; a-b == NaN // but a+b == "abcdefgefg"

2
비트 연산자가 비교보다 우선 순위가 낮은 이유는 무엇입니까?
가장 인기있는 언어 (아래 참고 참조)에서 비교 연산자 (==,! =, <,>, <=,> =)가 비트 연산자 (&, |, ^ ~)? 나는이 우선 순위가 자연 스러울 수있는 곳에서 사용 된 적이 없다고 생각합니다. 항상 다음과 같습니다. if( (x & MASK) == CORRECT ) ... // Chosen bits are in correct setting, rest …



7
“nor”에 대한 키워드 또는 연산자가 있습니까?
nor 와 동등한 연산자가 있습니까? 예를 들어, 내가 가장 좋아하는 색은 녹색이나 파란색이 아닙니다. 코드는 다음과 같습니다. // example one if (color!="green" && color!="blue") { } // example two if (x nor y) { // x is false and y is false }
56 operators 

9
== 연산자 문자열 값을 비교하지 않은 이유는 무엇입니까?
모든 유능한 Java 프로그래머는 ==가 참조 동등성을 검사하기 때문에 String이 == 대신 String.equals ()를 사용해야한다는 것을 알고 있습니다. 문자열을 다룰 때 대부분의 경우 참조 평등이 아닌 가치 평등을 확인합니다. 언어가 ==를 사용하여 문자열 값을 비교할 수 있으면 더 직관적 인 것처럼 보입니다. 이에 비해 C #의 == 연산자는 문자열 s의 …


7
대부분의 주류 언어가 3-way 부울 비교를 위해“x <y <z”구문을 지원하지 않는 이유는 무엇입니까?
두 숫자 (또는 다른 잘 정렬 된 엔티티)를 비교하려면을 사용하십시오 x &lt; y. 세 가지를 비교하고 싶다면 고등학교 대 수생이 시도해볼 것을 제안 x &lt; y &lt; z합니다. 그러면 프로그래머가 "아니요, 유효하지 않습니다 x &lt; y &amp;&amp; y &lt; z. 해야합니다 "라고 응답합니다 . 내가 접한 대부분의 언어는이 구문을 지원하지 …

3
C ++의 부울 유형이 ++를 지원하지만-를 지원하지 않는 이유는 무엇입니까?
왜 연산자 --는 bool에 존재 하지 않고 연산자 는 bool에 존재 ++합니까? C ++로 시도했지만 내 질문이 다른 언어에 적용되는지 알 수 없습니다. 나는 또한 알게되어 기쁘다. 나는++ bool과 함께 연산자 를 사용할 수 있다는 것을 알고있다 . 부울을 true로 만듭니다. bool b = false; b++; // Now b == …

10
대부분의 프로그래밍 언어에 '!>'(보다 크지 않음) 및 '! <'(보다 작지 않은) 연산자가없는 이유가 있습니까?
또는 역사의 단지 사고없는 경우 - - 더 있다는 것을 나는 어떤 이유가 궁금 !&gt;와 !&lt;에 사업자 대부분의 프로그래밍 언어? a &gt;= b (a는 OR과 b가 같다) 는 !(a &lt; b) (a NOT b) 와 같이 쓸 수있다 a !&lt; b. 이 질문은 식 트리 빌더를 코딩하는 중이었습니다. 대부분의 프로그래밍 …

9
대입 연산자가 값을 반환하면 어떤 이점이 있습니까?
Javascript와 PHP를 모두 대체하려는 언어를 개발 중입니다. (나는 이것에 어떤 문제도 보이지 않는다.이 언어들 중 어느 것이 큰 설치 기반을 가지고 있지는 않다.) 내가 변경하고 싶었던 것 중 하나는 할당 연산자를 할당 명령으로 바꾸어 반환 값을 사용하는 기능을 제거하는 것이 었습니다. x=1; /* Assignment. */ if (x==1) {} /* Comparison. …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.