Rất dễ sửa chữa; chỉ cần làm cho nó return nil
, nhưng lý do tại sao mã của tôi không hoạt động nếu không có dòng đó?Tại sao mã của tôi chỉ in một lần?
function x(bool)
if bool then
return "!"
end
end
print(x(true), x(false), x(false))
Điều gì làm cho nó khó hiểu hơn, đó là luôn luôn in các nil
, nhiều lần như tôi gọi x(false)
trừ 1.
tôi dường như không thể quấn toâi vöôït xung quanh lý do tại sao điều này xảy ra.
Số lượng giá trị được trả về bởi lệnh gọi hàm TRƯỚC KHI COMMA được điều chỉnh thành một, số giá trị của cuộc gọi cuối cùng không được điều chỉnh. Vì vậy, bạn có giá trị '1 + 1 + 0' được in –