Bekerja dengan file
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Ruby di Coddy. Pelajaran 1 dari 57.
Program nyata terbagi ke dalam beberapa file. File Ruby memuat file lain dengan require_relative, diikuti path file tersebut relatif terhadap file saat ini, biasanya tanpa akhiran .rb. Setelah baris itu, method dan class dari file yang dimuat dapat digunakan:
# greeting.rb
def greeting(name)
"Hello, #{name}!"
end
# main.rb
require_relative 'greeting'
puts greeting("Ada")Menjalankan ruby main.rb akan mencetak Hello, Ada!: main.rb memuat greeting.rb, lalu memanggil method-nya.
Program dimulai dari file yang kamu jalankan, di sini main.rb, dan Ruby mengeksekusinya dari atas ke bawah. require_relative menjalankan file lain pada titik tersebut, dan hanya pada kali pertama: pemanggilan kedua require_relative 'greeting' menghasilkan false dan tidak melakukan apa pun. Nama hanya dapat digunakan setelah file yang mendefinisikannya dimuat:
# main.rb
# puts greeting("Bo") # NoMethodError: greeting.rb belum dimuat
require_relative 'greeting' # menjalankan greeting.rb, mengembalikan true
require_relative 'greeting' # sudah dimuat, mengembalikan false
puts greeting("Bo")Susunan yang umum adalah satu class per file, dengan nama file mengikuti nama class dalam snake_case: class Dog ada di dog.rb, class BankAccount ada di bank_account.rb. Dalam tantangan di bagian ini, main.rb memuat kode input/output yang disediakan dan diawali satu baris require_relative untuk setiap file, sesuai urutan pemuatan: class yang menjadi dasar bagi class lain dimuat lebih dahulu.
dog.rb # class Dog ... end
bank_account.rb # class BankAccount ... end
functions.rb # method pembantu
main.rb # baris require_relative, lalu kode input/outputApa yang dibagikan oleh sebuah file bergantung pada jenis namanya. Method yang didefinisikan dengan def di bagian atas file, class, dan konstanta dapat digunakan oleh setiap file yang dimuat setelahnya. Variabel lokal hanya dimiliki oleh file itu sendiri:
# settings.rb
limit = 3 # variabel lokal: hanya settings.rb yang bisa mengaksesnya
MAX_ITEMS = 3 # konstanta: terlihat setelah dimuat
def limit_text
"at most #{MAX_ITEMS}"
end
# main.rb
require_relative 'settings'
puts limit_text # paling banyak 3
puts MAX_ITEMS # 3
# puts limit # NameError: variabel lokal tidak terdefinisiTantangan
MudahProgram ini memiliki dua file. main.rb memuat greeting.rb, membaca nama, lalu mencetak hasil greeting(name). Lengkapi greeting di greeting.rb agar mengembalikan Hello, Ada! untuk nama Ada, atau Hello, friend! jika namanya kosong.
Letakkan kodemu di greeting.rb. main.rb berisi kode input/output yang disediakan dan tidak dapat diedit.
Coba sendiri
require_relative 'greeting'
# Kode input/output yang disediakan: biarkan apa adanya
input = []
while (line = gets)
input << line.chomp
end
input.each { |name| puts greeting(name) }
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1class dan object
Bekerja dengan fileMendefinisikan classVariabel instansmethod dan selfto_s dan inspectRingkasan: Kartu Perpustakaan4Enkapsulasi
private methodprotected methodprivate setterMelindungi StatusUlasan, Mesin Penjual Otomatis7Polimorfisme dan Duck Typing
PolimorfismeDuck TypingMethod Abstrakcase dan classRingkasan: Method Pembayaran2Accessor dan self
Pembaca dan PenulisSetter Kustomself dalam methodIdentitas dan KesetaraanRangkuman: Daftar Kontak8Special method
Kesetaraan dan hashOperator methodPengindeksan dan penambahanKoleksi kustomRingkasan: Pecahan11Proyek: Manajemen Perpustakaan
Buku dan AnggotaMeminjam Buku3Method dan Variabel class
Method classVariabel instance classKonstantaMethod pabrikRangkuman: Kode KuponLatihan sendiri: Compiler Ruby online