Tôi đang đọc Advanced R của Hadley Wickham, nơi một số bài tập rất hay được cung cấp. Một trong số họ yêu cầu mô tả chức năng này:Hiểu đánh giá các đối số đầu vào của các hàm
f1 <- function(x = {y <- 1; 2}, y = 0) {
x + y
}
f1()
Ai đó có thể giúp tôi hiểu tại sao nó trả về 3? Tôi biết có cái gì đó được gọi là đánh giá lười biếng của các đối số đầu vào, và ví dụ: bài tập khác yêu cầu mô tả chức năng này
f2 <- function(x = z) {
z <- 100
x
}
f2()
và tôi đã dự đoán chính xác là 100; x
nhận giá trị z
được đánh giá bên trong hàm và sau đó x được trả về. Tuy nhiên, tôi không thể hiểu được điều gì sẽ xảy ra trong f1()
.
Cảm ơn.
Câu trả lời thực sự là, bất cứ ai viết mã như thế này sẽ bị buộc phải xem 24 giờ của video Donald Trump, hoặc cho đến khi mắt của họ tan chảy, tùy theo điều kiện nào đến trước. –
Nó không phải là một phần của bất kỳ mã nào nhưng tập thể dục :) – Celdor