Ruby 2.7 yeni yayınlandı ve "Konumsal ve anahtar kelime argümanlarının ayrılması" için bu yeni uyarılarla birlikte geliyor ( Sürüm Yayınlarına bakın ). Onunla oynuyordum ve anlamadığım başka bir uyarı olduğunu keşfettim.
Misal:
def multiply(x:, y:)
x * y
end
args = { x: 2, y: 3 }
multiply(args)
# ./warning.rb:7: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
# ./warning.rb:1: warning: The called method `multiply' is defined here
Sanırım itirazla ilgili ilk uyarı açık, ama ikinci uyarı The called method `multiply' is defined herebenim için kafa karıştırıcı.
İkinci uyarı ne anlama geliyor? İlk uyarı ile mi ilgili?
**Çağrıya ( multiply(**args)) eklenirken her iki uyarı da kaybolur .
1
Bu uyarıları nasıl bastıracağınızı bilen var mı? Günlük dosyasına yazılan kullanımdan kaldırma uyarılarım var, ancak bu dosyaları etkilemez. Koşu özellikleri yakut bir kabus 2.7.0
—
Carl