Adı verilen yöntem…… burada tanımlanmıştır


13

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

Yanıtlar:


15

İkinci uyarı ne anlama geliyor? İlk uyarı ile mi ilgili?

Metin iki satıra bölünmüş tek bir uyarı var. Kelimenin tam anlamıyla diyor ki: argsdönüştürülmelidir **args, işte bu uyarıyı veren çağrı, rahatınız için tanımı .


5
Güzel, teşekkürler! Belki sadece ben olabilirim, ama bu oldukça kafa karıştırıcı ...
lxxxvi

2
@lxxxvi Sadece sen değil. Buraya tam olarak aynı şey için geldim - eğer bir hata mesajı ise, bir hata mesajı olması gerektiğini hissediyorum.
Jacob

Gerçekten kafam karıştı, bu uyarıyı görüyorum ve i18n.rb için üstünde hiçbir şey yok, bu tek satırlık bir uyarı, yukarıdaki satır aktif destekle ilgilidir. Bu uyarı hakkında ne yapmam gerekiyor? </usr/local/lib/ruby/gems/2.7.0/gems/i18n-1.8.2/lib/i18n.rb:195: uyarı: Çağrılan yöntem `t 'burada tanımlanmıştır
Hackeron
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.