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에서 악몽이다
—
Carl