Câu hỏi phỏng vấn Ruby on Rails
Câu hỏi

Nêu sự khác biệt về phạm vi của hai biến này: @@name@name?

Câu trả lời

Trong Ruby, biến bắt đầu bằng @@ là biến lớp (class variable), trong khi biến bắt đầu bằng @ là biến thể hiện (instance variable).

Biến lớp (@@name) được chia sẻ giữa tất cả các thể hiện của một lớp. Điều này có nghĩa là nếu bạn thay đổi giá trị của biến lớp trong một thể hiện, giá trị đó sẽ thay đổi đối với tất cả các thể hiện khác của lớp đó. Biến lớp được sử dụng khi bạn muốn lưu trữ thông tin hoặc trạng thái chung cho tất cả các thể hiện của một lớp.

Biến thể hiện (@name) là biến độc lập với mỗi thể hiện của lớp. Mỗi thể hiện của lớp có thể có giá trị riêng cho biến thể hiện của nó. Biến thể hiện được sử dụng để lưu trữ thông tin hoặc trạng thái cụ thể cho mỗi thể hiện, và không được chia sẻ giữa các thể hiện khác của lớp.

Citations:
https://stackoverflow.com/questions/5890118/what-does-variable-mean-in-ruby
https://stackoverflow.com/questions/34215746/what-is-the-difference-between-variable-scope-and-name-scope
https://launchschool.com/books/ruby/read/variables
https://en.wikipedia.org/wiki/Sigil_(computer_programming)
https://softwareengineering.stackex...

junior

junior

Gợi ý câu hỏi phỏng vấn

senior

Sự khác biệt giữa content_foryield là gì?

junior

Helpers trong Ruby on Rails là gì

middle

Ruby on Rails sử dụng mô hình Model View Controller (MVC) như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào