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[1][3][9].

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[1][3][9].

Citations:
[1] https://stackoverflow.com/questions/5890118/what-does-variable-mean-in-ruby
[2] https://stackoverflow.com/questions/34215746/what-is-the-difference-between-variable-scope-and-name-scope
[3] https://launchschool.com/books/ruby/read/variables
[4] https://en.wikipedia.org/wiki/Sigil_%28computer_programming%29
[5] https://softwareengineering.stackexchange.com/que...

junior

junior

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

middle

Giải thích về Xử lý Ngoại lệ trong Ruby on Rails

middle

Sự khác biệt giữa các toán tử &&, || và and, or là gì?

senior

Làm thế nào để kiểm tra xem một khóa cụ thể có tồn tại trong bảng băm hay không?

Bình luận

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

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