इस विधि को `…’ कहा जाता है


13

रूबी 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' यहाँ परिभाषित किया गया है
Hackeron
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.