[Thảo Luận] Cho hỏi về Ruby
Dạo này mình đang nghiên cứu cái Ruby nhờ Web này
Và lúc tập thì nó có một đoạn code:
Mình không hiểu khúc
Có bạn nào có thể giải thích cho mình được không?
Và cho mình hỏi luôn
Và lúc tập thì nó có một đoạn code:
books = {}
books["Gravity's Rainbow] = :spendid
books["A horror in normal life"] = :disastrous
ratings = Hash.new(0)
books.values.each { |rate| ratings[rate] += 1 }
Mình không hiểu khúc
ratings = Hash.new(0)
books.values.each { |rate| ratings[rate] += 1 }
Có bạn nào có thể giải thích cho mình được không?
Và cho mình hỏi luôn
5.times { print "A" }
cho cùng kết quả
"A" * 5
nhưng
5 * 2
lại không cho cùng kết quả với
5.times { 2 }
Xin cảm ơn mọi người nhiều.
Comments
hình như là kiểu chuỗi nó in ra 5 chữ a, còn kiểu số nó ra 2^5 thì phải
5*2 nó là toán tử rõ ràng, nên kết quả phải trả về số là 10
ví dụ 5.times = for i in 0..4
num.times { câu lệnh }
nhìn các bác nói t chẳng hiểu gì cả haha
2 dòng lệnh dưới đây sẽ có kết quả giống nhau là đều in ra 5 số 2.
Còn khúc có nghĩa là sao?
mình hiểu cái books.values.each là cho từng giá trị của books
còn mấy cái Hash.new(0) với { |rate| ratings[rate] += 1 } là sao?
Mót ko đc sờ băm hé :v
1 link cho bạn :v
http://www.techotopia.com/index.php/Ruby_Essentials
Có thì bạn xem code luôn, nếu không mình nói qua nhé.
Nó giống như 1 cái từ điển có cấu trúc như sau: - books là tên hash
- key là khóa
- value là giá trị
Nhìn cũng khá là giống 1 cái mảng (array) nhỉ, key giống như index(chỉ số 1, 2, 3....) của array vậy, nhưng key ở đây không phải chỉ có thể là số mà có thể là string hay 1 số kiểu khác, value cũng
vậy. Giống như là nhóm 2 thằng thành 1 cặp thôi, biết thằng này thì biết ngay thằng còn lại là gì. :D
Còn đây mình xin giải thích cái code:
và |rate| trong cái code đó có vai trò gì?
2. |rate| ở đây chính là value tại vòng lặp hiện tại của cái vòng lặp books.values.each đó
trong trường hợp này:
1. vòng lặp đầu tiên: |rate| = :spendid
2. vòng lặp thứ 2: |rate| = :disastrous
Không có vòng lặp thứ 3 bởi vì books chỉ có 2 cái values mà thôi :D
Mình nói đúng không?
Tại mình thấy có ví dụ ghi Dir.entries "/"