Go में बूलियन को पहले से घोषित बूलियन टाइप bool से दर्शाया जाता है, और इसकी वैल्यू true या false हो सकती है।
यह एक परिभाषित टाइप है।
var closed bool // boolean variable 'closed' implicitly initialized with 'false'
speeding := true // boolean variable 'speeding' initialized with 'true'
hasError := false // boolean variable 'hasError' initialized with 'false'
Go तीन लॉजिकल ऑपरेटर का समर्थन करता है। ये एक्सप्रेशन को जाँचकर बूलियन वैल्यू देते हैं, यानी true या false लौटाते हैं।
| ऑपरेटर | इसका क्या मतलब है |
|---|---|
&& (और) |
दोनों दावे सही हों, तभी यह सही होता है। |
|| (या) |
कम से कम एक दावा सही हो, तो यह सही होता है। |
! (नहीं) |
यह तभी सही होता है जब दावा गलत हो। |
इस अभ्यास में आप एक नए RPG गेम का क्वेस्ट लॉजिक बनाएँगे, जिसे आपका एक दोस्त बना रहा है। गेम की मुख्य किरदार Annalyn है, जो एक बहादुर लड़की है और जिसके पास एक भयंकर और वफादार पालतू कुत्ता है। लेकिन दुख की बात है कि उसकी सबसे अच्छी दोस्त का जंगल में जामुन ढूँढते समय अपहरण कर लिया गया। Annalyn अपनी सबसे अच्छी दोस्त को ढूँढकर छुड़ाने की कोशिश करेगी। अगर वह चाहे तो इस क्वेस्ट में अपने कुत्ते को भी साथ ले जा सकती है।
अपनी सबसे अच्छी दोस्त का पीछा करते हुए कुछ समय बाद उसे वह शिविर मिल जाता है जिसमें उसकी दोस्त कैद है। पता चलता है कि अपहरणकर्ता दो हैं: एक शक्तिशाली शूरवीर और एक चालाक धनुर्धर।
अपहरणकर्ताओं को ढूँढ लेने के बाद Annalyn सोचती है कि वह नीचे दी गई कार्रवाइयों में से कौन-सी कर सकती है:
आपके सामने चार काम हैं: जंगल में मिले तीन किरदारों की स्थिति और Annalyn का पालतू कुत्ता साथ है या नहीं, इनके आधार पर यह तय करने का लॉजिक लिखना कि ऊपर बताई गई कार्रवाइयाँ की जा सकती हैं या नहीं।
एक CanFastAttack() फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है, जिससे पता चलता है कि शूरवीर जागा हुआ है या नहीं।
शूरवीर की स्थिति के आधार पर अगर तेज़ हमला किया जा सकता है, तो यह फंक्शन true लौटाता है।
वरना false लौटाता है:
var knightIsAwake = true
fmt.Println(CanFastAttack(knightIsAwake))
// Output: false
एक CanSpy() फंक्शन बनाइए जो तीन बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि शूरवीर, धनुर्धर और कैदी जागे हुए हैं या नहीं।
तीनों किरदारों की स्थिति के आधार पर अगर उन पर जासूसी की जा सकती है, तो यह फंक्शन true लौटाता है।
वरना false लौटाता है:
var knightIsAwake = false
var archerIsAwake = true
var prisonerIsAwake = false
fmt.Println(CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake))
// Output: true
एक CanSignalPrisoner() फंक्शन बनाइए जो दो बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि धनुर्धर और कैदी जागे हुए हैं या नहीं।
इन दोनों किरदारों की स्थिति के आधार पर अगर कैदी को संकेत दिया जा सकता है, तो यह फंक्शन true लौटाता है।
वरना false लौटाता है:
var archerIsAwake = false
var prisonerIsAwake = true
fmt.Println(CanSignalPrisoner(archerIsAwake, prisonerIsAwake))
// Output: true
एक CanFreePrisoner() फंक्शन बनाइए जो चार बूलियन वैल्यू लेता है।
पहले तीन पैरामीटर क्रमशः बताते हैं कि शूरवीर, धनुर्धर और कैदी जागे हुए हैं या नहीं।
आखिरी पैरामीटर बताता है कि Annalyn का पालतू कुत्ता साथ है या नहीं।
तीनों किरदारों की स्थिति और Annalyn के पालतू कुत्ते की मौजूदगी के आधार पर अगर कैदी को छुड़ाया जा सकता है, तो यह फंक्शन true लौटाता है।
वरना यह false लौटाता है:
var knightIsAwake = false
var archerIsAwake = true
var prisonerIsAwake = false
var petDogIsPresent = false
fmt.Println(CanFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent))
// Output: false
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।