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.