Symbol sebagai Kunci Hash
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 78 dari 88.
Sejauh ini, kamu telah menggunakan string sebagai kunci hash dengan sintaks hash rocket. Namun, pengembang Ruby biasanya menggunakan symbol sebagai kunci, yang menawarkan pendekatan yang lebih rapi dan efisien.
Ingat simbol dari sebelumnya? Simbol adalah pengenal ringan yang tidak dapat diubah dan diawali dengan titik dua. Saat menggunakan simbol sebagai kunci, Ruby menyediakan sintaks singkat khusus:
person = {name: "Alice", age: 25, city: "Paris"}
puts person # output: {:name=>"Alice", :age=>25, :city=>"Paris"}Perhatikan bagaimana name: menggantikan :name =>. Bentuk singkat ini hanya berfungsi jika key berupa simbol. Untuk mengakses nilai, gunakan simbol dengan tanda kurung siku:
person = {name: "Alice", age: 25}
puts person[:name] # Output: Alice
puts person[:age] # Output: 25Menambahkan dan mengubah entri dilakukan dengan cara yang sama:
person = {name: "Alice"}
person[:city] = "Paris"
person[:name] = "Bob"
puts person # Output: {:name=>"Bob", :city=>"Paris"}Simbol lebih disukai sebagai kunci hash karena lebih cepat dibandingkan string dan menggunakan lebih sedikit memori. Kamu akan sering melihat pola ini dalam kode Ruby, jadi sebaiknya kamu membiasakan diri dengannya.
Tantangan
MudahBaca tiga baris input:
- Merek mobil (string)
- Nama model (string)
- Tahun (bilangan bulat)
Buat hash bernama car menggunakan sintaks singkat simbol (misalnya, key: value) dengan pasangan kunci-nilai berikut:
:branddipetakan ke merek mobil:modeldipetakan ke nama model:yeardipetakan ke tahun (sebagai bilangan bulat)
Lalu lakukan operasi berikut:
- Cetak nilai dari kunci
:model - Tambahkan kunci baru
:colordengan nilai"black" - Perbarui kunci
:yeardengan menambahkan 1 ke nilainya saat ini - Cetak hash akhir
Misalnya, jika inputnya adalah Toyota, Camry, dan 2020, outputnya seharusnya:
Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}Jika inputnya adalah Honda, Civic, dan 2018, outputnya seharusnya:
Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}Jika inputnya adalah Ford, Mustang, dan 2023, outputnya seharusnya:
Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}Coba sendiri
# Baca input
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i
# TODO: Tulis kodemu di bawah ini
# 1. Buat hash bernama 'car' menggunakan sintaks singkat symbol dengan kunci :brand, :model, dan :year
# 2. Cetak nilai dari kunci :model
# 3. Tambahkan kunci baru :color dengan nilai "black"
# 4. Perbarui kunci :year dengan menambahkan 1 ke nilainya saat ini
# 5. Cetak hash akhirPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ringkasan: Logika SederhanaOperator Logika Bagian 3Operator Logika Bagian 47Kalkulator Pembagian Tagihan
Pesan Selamat DatangMengambil input dari Pengguna10FizzBuzz dengan Variasi
Gambaran Umum PermainanMetode FizzBuzz2Variabel dan Tipe Data
Angka dan VariabelTipe Data stringTipe Data booleanTipe Data SymbolMemeriksa Tipe DataKonvensi PenamaanRangkuman: Membuat Variabel5Pengambilan Keputusan
Pernyataan IfIf - ElseRekap: Kalkulator SederhanaIf - Else BersarangPernyataan Unless8Perulangan
For Loop dengan RentangWhile LoopBreakNextRangkuman: FaktorialTimes LoopUntil LoopPerulangan BersarangRangkuman: Input Dinamis11array
Membuat arrayMengakses elemen arrayMengubah arrayMethod arrayRangkuman: array hasil perkalianRangkuman: array terbalikCara singkat menggunakan array14Hash
Membuat HashMengakses Elemen HashMengubah HashMethod pada HashRingkasan, Hash ProdukSymbol sebagai Kunci Hash3Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaRingkasan: Matematika SederhanaOperator Perbandingan6Dasar Input dan Output
Output dengan putsOutput dengan print dan pOutput dengan VariabelInput dengan getsMethod chompKonversi TipeRangkuman: Kalkulator UsiaRangkuman: Benar atau Salah9method
Mendefinisikan methodParameter methodNilai KembalianRangkuman: Sigma methodRangkuman: Validation methodNilai Default Parameter12Melakukan Perulangan pada Koleksi
Iterator EachEach dengan IndeksMelakukan Perulangan pada StringMap dan CollectLatihan sendiri: Compiler Ruby online