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)
).
답변
두 번째 경고는 무엇을 의미합니까? 첫 번째 경고와 관련이 있습니까?
텍스트가 두 줄로 분할 된 단일 경고가 있습니다. 문자 그대로 : args
로 변환해야합니다 **args
. 여기이 경고를 생성 한 호출이 있습니다. 여기에 편의를위한 정의가 있습니다 .