Tôi đã xem số này video. Tại sao a = a
được đánh giá là nil
nếu a
không được xác định?Tại sao `a = a`` nil` trong Ruby?
a = a # => nil
b = c = q = C# => nil
Tôi đã xem số này video. Tại sao a = a
được đánh giá là nil
nếu a
không được xác định?Tại sao `a = a`` nil` trong Ruby?
a = a # => nil
b = c = q = C# => nil
Trình thông dịch Ruby khởi tạo biến cục bộ với nil
khi biến được gán cho nó. Nó khởi tạo biến cục bộ trước khi nó thực thi biểu thức gán hoặc ngay cả khi gán không thể truy cập được (như trong ví dụ bên dưới). Điều này có nghĩa là mã của bạn khởi tạo a
với nil
và sau đó biểu thức a = nil
sẽ đánh giá theo giá trị tay phải.
a = 1 if false
a.nil? # => true
Khái niệm phân công đầu tiên không được thực thi, nhưng a
được khởi tạo với nil
.