programing

루비에 증분 연산자(+)가 없습니까?

i4 2023. 6. 5. 23:37
반응형

루비에 증분 연산자(+)가 없습니까?

중복 가능성:
Ruby가 fixnum에 대해 i++ 또는 i를 지원하지 않는 이유는 무엇입니까?

왜 Ruby에 증분 연산자가 없습니까?

예.

i++
++i

이것은++다른 용도로 사용되는 교환원?이것에 대한 진짜 이유가 있습니까?

Ruby에는 사전/사후 증분/감소 연산자가 없습니다.예를 들어.x++또는x--구문 분석에 실패합니다.더 중요한 것은++x또는--x아무것도 하지 않을 것입니다!실제로 여러 단항 접두사 연산자로 동작합니다.-x == ---x == -----x == ......숫자를 증가시키려면 다음과 같이 입력합니다.x += 1.

"루비에 새로 온 사람들이 알아야 할 것들"에서 가져온 것(아카이브, 미러)

그것은 제가 할 수 있는 것보다 더 잘 설명해 줍니다.

편집: 그리고 언어 작성자 자신의 이유(출처):

  1. 및 --는 Ruby에서 예약된 연산자가 아닙니다.
  2. C의 증분/감소 연산자는 사실 숨겨진 할당입니다.개체가 아닌 변수에 영향을 미칩니다.메서드를 통해 할당을 수행할 수 없습니다.Ruby는 대신 +=/-= 연산자를 사용합니다.
  3. 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

반응형