Beberapa objek di Ruby disimpan dalam variabel sebagai nilai langsung. Ini termasuk bilangan bulat, simbol (yang terlihat seperti: ini), dan objek khusus benar, salah, dan nihil. Ketika Anda menetapkan salah satu dari nilai-nilai ini ke variabel (x = 1), variabel tersebut menyimpan nilai itu sendiri, bukan referensi untuk itu. Dalam istilah praktis, ini tidak masalah (dan akan sering dibiarkan tersirat, alih-alih dijabarkan berulang kali, dalam diskusi referensi dan topik terkait dalam buku ini). Ruby menangani referensi objek referensi secara otomatis; Anda tidak perlu melakukan pekerjaan tambahan untuk mengirim pesan ke objek yang berisi, katakanlah, referensi ke string, sebagai lawan dari objek yang berisi nilai integer langsung. Tetapi aturan representasi nilai langsung memiliki beberapa konsekuensi menarik, terutama ketika datang ke bilangan bulat. Untuk satu hal, objek apa pun yang direpresentasikan sebagai nilai langsung selalu merupakan objek yang persis sama, tidak peduli berapa banyak variabel yang ditugaskan padanya. Hanya ada satu objek 100, hanya satu objek yang salah, dan sebagainya. Sifat langsung, unik dari variabel integer-terikat adalah di belakang kurangnya Ruby operator pre dan post-increment — artinya, Anda tidak dapat melakukan ini di Ruby: x = 1 x ++ # Tidak ada operator seperti itu Alasannya adalah karena untuk kehadiran langsung 1 dalam x, x ++ akan seperti 1 ++, yang berarti Anda akan mengubah angka 1 ke angka 2 — dan itu tidak masuk akal. tidak peduli berapa banyak variabel yang ditugaskan padanya. Hanya ada satu objek 100, hanya satu objek yang salah, dan sebagainya. Sifat langsung, unik dari variabel integer-terikat adalah di belakang kurangnya Ruby operator pre dan post-increment — artinya, Anda tidak dapat melakukan ini di Ruby: x = 1 x ++ # Tidak ada operator seperti itu Alasannya adalah karena untuk kehadiran langsung 1 dalam x, x ++ akan seperti 1 ++, yang berarti Anda akan mengubah angka 1 ke angka 2 — dan itu tidak masuk akal. tidak peduli berapa banyak variabel yang ditugaskan padanya. Hanya ada satu objek 100, hanya satu objek yang salah, dan sebagainya. Sifat langsung, unik dari variabel integer-terikat adalah di belakang kurangnya Ruby operator pre dan post-increment — artinya, Anda tidak dapat melakukan ini di Ruby: x = 1 x ++ # Tidak ada operator seperti itu Alasannya adalah karena untuk kehadiran langsung 1 dalam x, x ++ akan seperti 1 ++, yang berarti Anda akan mengubah angka 1 ke angka 2 — dan itu tidak masuk akal.