Mengubah Hash
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 75 dari 88.
Hash tidak bersifat statis setelah dibuat. Kamu bisa menambahkan pasangan kunci-nilai baru, memperbarui nilai yang sudah ada, dan menghapus entri saat programmu berjalan.
Untuk menambahkan pasangan baru atau memperbarui nilai yang sudah ada, tetapkan nilai ke kunci menggunakan tanda kurung siku:
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # Menambahkan pasangan kunci-nilai baru
person["age"] = 26 # Memperbarui nilai yang sudah ada
puts person # Output: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}Jika kuncinya ada, nilainya akan diganti. Jika tidak ada, pasangan baru akan ditambahkan ke hash.
Untuk menghapus pasangan kunci-nilai, gunakan method delete dengan kunci yang ingin kamu hapus:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # Output: {"name"=>"Alice", "age"=>25}method delete mengembalikan nilai yang dihapus, yang dapat berguna jika kamu perlu menggunakannya:
person = {"name" => "Alice", "age" => 25}
removed_age = person.delete("age")
puts removed_age # output: 25Jika kamu mencoba menghapus key yang tidak ada, Ruby hanya mengembalikan nil tanpa memunculkan error.
Tantangan
MudahBaca empat baris input:
- Nama siswa (string)
- Nilai awal (integer)
- Nilai baru untuk diperbarui (integer)
- Pasangan kunci-nilai baru dalam format
key:value(misalnya,subject:Math)
Buat hash bernama student dengan pasangan kunci-nilai awal berikut:
"name"dipetakan ke nama siswa"grade"dipetakan ke nilai awal (sebagai integer)
Lalu lakukan perubahan berikut:
- Perbarui kunci
"grade"dengan nilai baru - Tambahkan pasangan kunci-nilai baru menggunakan kunci dan nilai dari input keempat (nilainya harus tetap berupa string)
- Hapus kunci
"name"dari hash dan simpan nilai yang dihapus
Cetak nama yang dihapus pada baris pertama, lalu cetak hash akhir pada baris kedua.
Misalnya, jika inputnya adalah Alice, 85, 92, dan subject:Math, outputnya harus berupa:
Alice
{"grade"=>92, "subject"=>"Math"}Jika inputnya adalah Bob, 70, 75, dan status:passing, outputnya harus berupa:
Bob
{"grade"=>75, "status"=>"passing"}Jika inputnya adalah Charlie, 100, 95, dan note:excellent, outputnya harus berupa:
Charlie
{"grade"=>95, "note"=>"excellent"}Coba sendiri
# Baca input
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp
# TODO: Tulis kodemu di bawah ini
# 1. Buat hash bernama 'student' dengan kunci "name" dan "grade"
# 2. Perbarui kunci "grade" dengan nilai grade baru
# 3. Uraikan key_value_pair dan tambahkan hasilnya ke hash
# 4. Hapus kunci "name" dan simpan nilai yang dihapus
# Tampilkan nama yang dihapus
puts removed_name
# Tampilkan hash akhir
puts studentPelajaran 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 Dinamis3Operator 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