इनलाइन बनाम एक्सटर्नल इनपुट

इनपुट को इनलाइन या बाहरी तौर पर रेंडर किया जा सकता है. इससे यह कंट्रोल किया जाता है कि वैल्यू इनपुट के लिए कनेक्टर, ब्लॉक में (इनलाइन) रेंडर किए जाएं या बाहरी किनारे पर (एक्सटर्नल). साथ ही, इससे यह भी कंट्रोल किया जाता है कि इनपुट एक ही लाइन में रेंडर किए जाएं या अलग-अलग लाइनों में.

"count with x from value to value do
statement" ब्लॉक के इनलाइन और बाहरी वैरिएशन. इनलाइन वेरिएशन में, ब्लॉक में दो लाइनें होती हैं: सबसे ऊपर वाली लाइन में "count with x from value to value" और सबसे नीचे वाली लाइन में "do statement" होता है.
वैल्यू इनपुट, पज़ल के उन टुकड़ों की तरह दिखते हैं जिन्हें सबसे ऊपर वाली लाइन के अंदर से काटा गया है.
बाहरी वर्शन में, ब्लॉक में चार लाइनें होती हैं: "count with x", "from
value", "to value", और "do statement". वैल्यू इनपुट, दूसरी और तीसरी लाइनों के आखिर में हैं. ये पज़ल के फ़ीमेल कनेक्टर की तरह दिखते हैं.

ब्लॉक की परिभाषा में, एक वैकल्पिक बूलियन तय किया जा सकता है. इससे यह कंट्रोल होता है कि इनपुट इनलाइन हैं या नहीं.

JSON

{
  // ...,
  "inputsInline": true
}

JavaScript

init: function() {
  // ...
  this.setInputsInline(true);
}

इस बूलियन को true (इनलाइन इनपुट) पर सेट करने पर:

  • वैल्यू इनपुट के लिए कनेक्टर, ब्लॉक के अंदर रेंडर किए जाते हैं.
  • स्टेटमेंट के इनपुट, अपनी लाइन में रेंडर किए जाते हैं.
  • डमी, लाइन के आखिर में मौजूद, और वैल्यू इनपुट, सभी एक ही लाइन में रेंडर किए जाते हैं. हालांकि, स्टेटमेंट या लाइन के आखिर में मौजूद इनपुट के बाद आने वाले किसी भी इनपुट को नई लाइन में रेंडर किया जाता है.

जब इसे false (बाहरी इनपुट) पर सेट किया जाता है, तब:

  • वैल्यू इनपुट के लिए कनेक्टर, ब्लॉक के बाहरी किनारे पर रेंडर किए जाते हैं.
  • सभी इनपुट अपनी-अपनी लाइन में रेंडर किए जाते हैं. हालांकि, लाइन के आखिर में मौजूद ऐसा इनपुट जो डमी इनपुट के बाद आता है उसे डमी इनपुट वाली लाइन में ही रेंडर किया जाता है.

अगर आपको इसे समझने में परेशानी हो रही है, तो Blockly Developer Tools में ब्लॉक बनाएं. इसके बाद, inputs ड्रॉपडाउन (automatic, external, inline) के लिए अलग-अलग सेटिंग चुनें.

अगर इस बूलियन को तय नहीं किया जाता है, तो Blockly कुछ अनुमानित तरीकों का इस्तेमाल करके यह पता लगाएगा कि कौनसा मोड सबसे अच्छा है. अगर Blockly सही विकल्प चुनता है, तो इस फ़ील्ड को 'तय नहीं किया गया' के तौर पर छोड़ना बेहतर है. ऐसा इसलिए, क्योंकि अलग-अलग भाषाओं में अनुवाद करने के लिए, अलग-अलग मोड अपने-आप लागू हो सकते हैं. इंटरपोलेशन टोकन के क्रम में, "set %1 to %2" (बाहरी इनपुट) और "put %2 in %1" (इनलाइन इनपुट) का उदाहरण देखें.

जब किसी ब्लॉक में संख्या जैसे छोटे इनपुट होने की संभावना हो, तब इनलाइन इनपुट का इस्तेमाल करें. उपयोगकर्ता, संदर्भ मेन्यू में जाकर इस विकल्प को टॉगल कर सकता है.