Saya benar-benar baru di dunia Ruby, dan saya agak bingung dengan konsep Simbol. Apa perbedaan antara Simbol dan Variabel? Kenapa tidak menggunakan variabel saja?
Terima kasih.
Saya benar-benar baru di dunia Ruby, dan saya agak bingung dengan konsep Simbol. Apa perbedaan antara Simbol dan Variabel? Kenapa tidak menggunakan variabel saja?
Terima kasih.
Jawaban:
Variabel dan simbol adalah hal yang berbeda. Variabel menunjuk ke berbagai jenis data. Di Ruby, simbol lebih seperti string daripada variabel.
Di Ruby, string dapat berubah, sedangkan simbol tidak berubah. Itu berarti bahwa hanya satu salinan simbol yang perlu dibuat. Jadi, jika sudah
x = :my_str
y = :my_str
:my_str
hanya akan dibuat sekali, dan x
dan y
arahkan ke area memori yang sama. Di sisi lain, jika Anda punya
x = "my_str"
y = "my_str"
string yang berisi my_str
akan dibuat dua kali , dan x
dan y
akan menunjuk ke instance yang berbeda.
Akibatnya, simbol sering digunakan sebagai setara dengan enums di Ruby, serta kunci ke kamus (hash).
#mySymbol
.
Simbol di Ruby pada dasarnya sama dengan simbol di dunia nyata. Ini digunakan untuk mewakili atau memberi nama sesuatu.
Simbol sangat umum digunakan untuk mewakili semacam keadaan, misalnya
order.status = :canceled
order.status = :confirmed
Anda juga dapat melihat simbol sebagai enum instan. Anda tidak perlu mendefinisikan simbol, cukup gunakan saja. Artikel ini menjelaskannya dengan sangat rinci.
Biasanya, variabel cenderung bingung dengan string, tapi saya bisa mengerti Anda berpikir itu seperti variabel. Itu bisa dimengerti. Pikirkan seperti ini:
Status pemain dalam permainan diwakili oleh angka. 1 berarti hidup, 2 berarti tidak yakin, 3 berarti mati. Ini dapat dengan mudah diganti dengan simbol. Simbol bisa :alive
:unsure
dan :dead
. Untuk memeriksa apakah seorang pemain masih hidup, alih-alih melakukan ini:
if player_status == 1
Anda bisa melakukan ini:
if player_status == :alive