Тут визначається названий метод `… '


13

Ruby 2.7 був щойно випущений, і він поставляється з цими новими попередженнями про "Розмежування позиційних та ключових аргументів" (див. Їхню публікацію ) Я пограв з ним і виявив, що є ще одне попередження, яке я не розумію.

Приклад:

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

Я думаю, що перше попередження про депресію ясне, але друге попередження The called method `multiply' is defined hereмене бентежить.

Що означає друге попередження? Це пов’язано з першим попередженням?

Обидва попередження зникають при додаванні **до виклику ( multiply(**args)).


1
Хтось знає, як придушити ці попередження? Я маю попередження про застарілі записи до файлу журналу, але це не впливає на ці. Технічні характеристики - це кошмар у рубіні 2.7.0
Карл

Відповіді:


15

Що означає друге попередження? Це пов’язано з першим попередженням?

Є одне попередження з текстом, розділеним на два рядки. Буквально сказано: argsслід перейти до **args, ось дзвінок, який викликав це попередження, ось його визначення для вашої зручності .


5
Приємно, дякую! Можливо, це лише я, але це досить заплутано ...
lxxxvi

2
@lxxxvi Це не лише ти. Я приїхав сюди саме так - якщо це одне повідомлення про помилку, я вважаю, що це повинно бути одне повідомлення про помилку.
Яків

Я дуже розгублений, я бачу це попередження, і над ним немає нічого для i18n.rb, це попередження про одну лінію, рядок вище стосується активної підтримки. Що мені робити з цим попередженням? </usr/local/lib/ruby/gems/2.7.0/gems/i18n-1.8.2/lib/i18n.rb:195: попередження: Покликаний метод `t 'визначений тут
Хекрон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.