From Test-Scratch-Wiki
(Redirected from () Contains ()? (List block))
() Contains ()? | |
[ v] contains []?
| |
Category | लिस्ट ब्लॉक |
Type | रिपोर्टर ब्लॉक |
Introduced in | स्क्रैच १.३ |
() में ()? ब्लॉक एक बूलियन ब्लॉक और एक सूची ब्लॉक है। यह ब्लॉक जांचता है कि क्या निर्दिष्ट सूची में कोई भी आइटम दिए गए पाठ के बराबर है; यदि सूची में से कम से कम एक आइटम चयनित पाठ के बराबर है, तो ब्लॉक सत्य लौटाता है, और यदि उनमें से कोई भी नहीं है, तो ब्लॉक असत्य लौटाता है। निर्दिष्ट पाठ को सूची में कम से कम एक आइटम के बराबर होना चाहिए; उदाहरण के लिए, पाठ "abc" को केवल "abcde" आइटम वाली सूची में नहीं माना जाएगा।
इस ब्लॉक को पहले "() Contains ()" कहा जाता था, या केवलor [ v] contains []:: list
, इससे पहले कि इसके नाम में प्रश्न चिह्न जोड़ा गया था, जो कि स्क्रैच २.० से पहले था।
यह ब्लॉक स्क्रैच १.४ में केस सेंसिटिविटी जब यह यह जांचता था कि कोई आइटम निर्दिष्ट स्ट्रिंग के बराबर है या नहीं, लेकिन Scratch 2.0 और उसके बाद इसे केस इंसेंसिटिव प्रक्रिया में बदल दिया गया।
उदाहरण उपयोग
यह ब्लॉक यह जांचने के लिए उपयोग किया जा सकता है कि कोई आइटम सूची में मौजूद है या नहीं। () Contains ()? ब्लॉक के कुछ सामान्य उपयोग:
- सूचियों को स्कैन करना
if <[lunch v] contains [spinach]?> then say [Yuck! Spinach!] end
- इन्वेंटरी में जोड़ने से पहले यह जांचना कि क्या कोई आइटम पहले से मौजूद है
if <not <[collection v] contains [fan]?>> then add [fan] to [collection v] else say [I already have a fan in my collection.] end
- किसी क्रिया को निष्पादित करने से पहले यह सुनिश्चित करना कि एक वस्तु सूची में मौजूद है।
if <[collection v] contains [fan]?> then broadcast (action v) else say [It's too far to reach the pile of sand on that platform.] end
- यह जांचना कि क्या चयनित स्तर खिलाड़ी के लिए लॉक या अनलॉक किया गया है।
ask [which level would you like to play?] and wait if <[unlocked levels v] contains (answer)?> then broadcast(start level v) else say [The level you chose hasn't been unlocked yet! Play the previous level to play this one.
केस सेंसिटिव
यह ब्लॉक स्क्रैच १.४ में अपनी जांचों में केस-सेंसिटिव था, लेकिन इसे अब केस-इंसेंसिटिव बना दिया गया है। इसका मतलब है कि यदि एक सूची में ठीक 'सेब' है, तो निम्नलिखित सभी सत्य रिपोर्ट करेंगे:
<[list v] contains [APPLE]> <[list v] contains [apple]> <[list v] contains [Apple]>
वर्कअराउंड
इस ब्लॉक को निम्नलिखित कोड के माध्यम से पुनरावृत्त किया जा सकता है:
जब आवश्यकता होती है, तो इसे बूलियन इनसर्ट में डाला जाता है।
हालाँकि, एक सरल समाधान यह है कि इसे बूलियन सम्मिलनों में डाला जा सकता है:
set [count v] to [1] repeat until <<(count) > (length of [list v])> or <(item (count) of [list v]) = (thing)>> change [count v] by (1) end set [report v] to <(item (count) of [list v]) = (thing)>
जब इसकी जरूरत है, <(report) = [true]>
बूलियन डेटा प्रकार को इंसर्ट में रखा जाता है।
हालाँकि, एक सरल समाधान यह है कि हम इसका उपयोग करें (item # of [thing] in [list v])
, जिसे बूलियन सम्मिलनों में डाला जा सकता है:
if (item # of (. . .:: grey) in [list v]) then . . . end