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