루비에 증분 연산자(+)가 없습니까?
왜 Ruby에 증분 연산자가 없습니까?
예.
i++
++i
이것은++
다른 용도로 사용되는 교환원?이것에 대한 진짜 이유가 있습니까?
Ruby에는 사전/사후 증분/감소 연산자가 없습니다.예를 들어.
x++
또는x--
구문 분석에 실패합니다.더 중요한 것은++x
또는--x
아무것도 하지 않을 것입니다!실제로 여러 단항 접두사 연산자로 동작합니다.-x == ---x == -----x == ......
숫자를 증가시키려면 다음과 같이 입력합니다.x += 1
.
"루비에 새로 온 사람들이 알아야 할 것들"에서 가져온 것(아카이브, 미러)
그것은 제가 할 수 있는 것보다 더 잘 설명해 줍니다.
편집: 그리고 언어 작성자 자신의 이유(출처):
- 및 --는 Ruby에서 예약된 연산자가 아닙니다.
- C의 증분/감소 연산자는 사실 숨겨진 할당입니다.개체가 아닌 변수에 영향을 미칩니다.메서드를 통해 할당을 수행할 수 없습니다.Ruby는 대신 +=/-= 연산자를 사용합니다.
- self는 할당 대상이 될 수 없습니다.또한 정수 1의 값을 변경하면 프로그램 전체에 심각한 혼란이 발생할 수 있습니다.
Matz의 게시물에서:
++ 및 --는 Ruby에서 예약된 연산자가 아닙니다.
C의 증분/감소 연산자는 사실 숨겨진 할당입니다.개체가 아닌 변수에 영향을 미칩니다.메서드를 통해 할당을 수행할 수 없습니다.Ruby는 대신 +=/-= 연산자를 사용합니다.
self는 할당 대상이 될 수 없습니다.또한 정수 1의 값을 변경하면 프로그램 전체에 심각한 혼란이 발생할 수 있습니다.
matz.
예를 들어 PHP나 C와는 달리 루비의 모든 것이 객체이기 때문에 그 표기법을 사용할 수 없다고 생각합니다.
물론 사용할 수 있습니다.$var=0; $var++
PHP에서는, 하지만 그것은 변수이고 객체가 아니기 때문입니다.그러므로,$var = new stdClass(); $var++
아마도 오류를 던질 것입니다.
저는 Ruby나 RoR 프로그래머가 아니기 때문에 누군가 위의 내용을 확인하거나 부정확하면 수정할 수 있을 것이라고 확신합니다.
언급URL : https://stackoverflow.com/questions/3717519/no-increment-operator-in-ruby
'programing' 카테고리의 다른 글
Google Firestore:속성 값의 하위 문자열에 대한 쿼리(텍스트 검색) (0) | 2023.06.05 |
---|---|
조각을 사용해야 하는 이유는 무엇이며, 활동 대신 조각을 사용해야 하는 이유는 무엇입니까? (0) | 2023.06.05 |
잘못된 번들 오류 - "실행 스토리보드 필요" (0) | 2023.06.05 |
쿼리 효율성을 분석할 때 설명 명령에 의존해야 합니까? (0) | 2023.06.05 |
Python과 교차 플랫폼 방식으로 경로가 절대 경로인지 상대 경로인지 확인하는 방법은 무엇입니까? (0) | 2023.06.05 |