beklendiği gibi aşağıdaki pasajı bekliyordum çalışmıyor unless`. Bunun neden olduğuna dair herhangi bir fikir var mı?`tanımlanan` ve `
10
A
cevap
2
Yerel değişkenler, ayrıştırıldıkları noktada tanımlanır (nil
). var2
'un tanımı, koşulun önündedir. Bu, atama yapılmadığında bile var2
tanımlanır. Daha sonra koşul, var2
'un için nil
değerini koruduğu tanımlanır.
10
Bu Ruby'deki tek anlardan biri, gerçek WTF'leri çağırır.
Sen sonek sözdizimi ile
unless defined? var
var = :value
end
kullanmak zorunda, tercüman içten nil
değeri -ify o böylece onay yapılmadan önce tanımlanan yapım değişken hakkında ikna edebilirim böylece:
# Doesn't print anything
unless defined?(foo) and (p(foo) or true)
foo = :value
end
# Prints nil
bar = :value unless defined?(bar) and (p(bar) or true)