ตัวดำเนินการเพิ่ม / ลดก่อน / หลัง ( ++
และ--
) เป็นไวยากรณ์ภาษาโปรแกรมมาตรฐานที่ค่อนข้างดี (สำหรับภาษาขั้นตอนและภาษาเชิงวัตถุอย่างน้อย)
ทำไม Ruby ถึงไม่สนับสนุนพวกเขา? ฉันเข้าใจว่าคุณสามารถทำในสิ่งเดียวกันได้ด้วย+=
และ-=
แต่มันก็ดูเป็นเรื่องแปลกที่จะไม่รวมบางสิ่งเช่นนั้นโดยพลการโดยเฉพาะอย่างยิ่งเนื่องจากมันกระชับและเป็นแบบแผน
ตัวอย่าง:
i = 0 #=> 0
i += 1 #=> 1
i #=> 1
i++ #=> expect 2, but as far as I can tell,
#=> irb ignores the second + and waits for a second number to add to i
ผมเข้าใจว่าFixnum
จะไม่เปลี่ยนรูป แต่ถ้า+=
สามารถ instanciate ใหม่Fixnum
และตั้งทำไมไม่ทำเช่นเดียวกันสำหรับ++
?
ความสม่ำเสมอในการมอบหมายงานที่มี=
ตัวละครเป็นเหตุผลเดียวสำหรับสิ่งนี้หรือฉันพลาดอะไรไป?
+=
โอเปอเรเตอร์ได้ ใน CI พยายามใช้++
/ --
only inside conditionals โดยเลือกใช้คำสั่งตามตัวอักษร+=
/ -=
ในคำสั่งพื้นฐานมากกว่า อาจเป็นเพราะฉันเรียนรู้ Python (นานหลัง C แม้ว่า ... )