Go में संख्याओं की तुलना इन संबंध और समानता ऑपरेटरों से की जा सकती है।
| तुलना | ऑपरेटर |
|---|---|
| बराबर | == |
| बराबर नहीं | != |
| कम | < |
| कम या बराबर | <= |
| अधिक | > |
| अधिक या बराबर | >= |
तुलना का परिणाम हमेशा एक बूलियन वैल्यू होता है, यानी या तो true या false।
a := 3
a != 4 // true
a > 5 // false
ऊपर दिए गए तुलना ऑपरेटरों से स्ट्रिंग की तुलना भी की जा सकती है। उस स्थिति में तुलना शब्दकोश के क्रम (lexicographical order) में होती है। उदाहरण के लिए:
"apple" < "banana" // true
"apple" > "banana" // false
if स्टेटमेंटGo में शर्तें दूसरी भाषाओं की शर्तों जैसी ही होती हैं।
किसी भी शर्त वाले ऑपरेशन का मूल टाइप bool टाइप होता है, जिसकी वैल्यू true या false हो सकती है।
अक्सर शर्तों का इस्तेमाल यह तय करने के लिए किया जाता है कि कोड किस क्रम में चलेगा, यानी अलग-अलग शर्तों की जाँच के लिए।
किसी खास स्थिति की जाँच के लिए if स्टेटमेंट इस्तेमाल किया जा सकता है, जो अपना कोड तभी चलाता है जब उसकी शर्त true हो, ऐसे:
var value string
if value == "val" {
return "was val"
}
जहाँ एक से अधिक स्थितियाँ हों, वहाँ कई if स्टेटमेंट else if और else स्टेटमेंट की मदद से एक के बाद एक जोड़े जा सकते हैं।
var number int
result := "This number is "
if number > 0 {
result += "positive"
} else if number < 0 {
result += "negative"
} else {
result += "zero"
}
if स्टेटमेंट में एक छोटा इनिशियलाइज़ेशन स्टेटमेंट भी हो सकता है, जिससे if स्टेटमेंट के लिए एक या अधिक वेरिएबल को शुरुआती वैल्यू दी जा सकती है।
उदाहरण के लिए:
num := 7
if v := 2 * num; v > 10 {
fmt.Println(v)
} else {
fmt.Println(num)
}
// Output: 14
ध्यान दें: इनिशियलाइज़ेशन स्टेटमेंट में बनाए गए वेरिएबल
ifस्टेटमेंट के खत्म होने के बाद स्कोप से बाहर चले जाते हैं।
इस अभ्यास में आप एक वाहन खरीदने की तैयारी में मदद करने के लिए कुछ कोड लिखेंगे।
आपके सामने तीन काम हैं। पहला, यह तय करना कि आपको लाइसेंस चाहिए या नहीं। दूसरा, दो वाहनों में से एक चुनने में मदद करना। और तीसरा, पुराने वाहन के लिए उचित कीमत का अंदाज़ा लगाना।
कुछ तरह के वाहनों को चलाने के लिए ड्राइविंग लाइसेंस चाहिए।
मान लीजिए कि केवल "car" और "truck" तरह के वाहनों के लिए लाइसेंस चाहिए, बाकी सब बिना लाइसेंस के चलाए जा सकते हैं।
NeedsLicense(kind) फंक्शन बनाइए। यह फंक्शन वाहन का प्रकार लेता है और एक बूलियन वैल्यू लौटाता है, जो बताती है कि उस प्रकार के वाहन के लिए आपको लाइसेंस चाहिए या नहीं।
needLicense := NeedsLicense("car")
// => true
needLicense = NeedsLicense("bike")
// => false
needLicense = NeedsLicense("truck")
// => true
आप उपलब्ध वाहनों के अपने विकल्पों को परखते हैं।
आप उन्हें दो विकल्पों तक सीमित कर लेते हैं, लेकिन अंतिम फैसला लेने में आपको मदद चाहिए।
इसके लिए ChooseVehicle(option1, option2) फंक्शन बनाइए। यह फंक्शन दो वाहन आर्गुमेंट के रूप में लेता है और एक फैसला लौटाता है, जिसमें वह विकल्प शामिल होता है जो वर्णक्रम के अनुसार पहले आता है।
vehicle := ChooseVehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."
ChooseVehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."
अब जब आपने फैसला ले लिया है, तो आप यह सुनिश्चित करना चाहते हैं कि डीलरशिप पर आपको उचित दाम मिले। चूँकि आप पुराना वाहन खरीदना चाहते हैं, इसलिए कीमत इस बात पर निर्भर करती है कि वाहन कितना पुराना है। मोटे अंदाज़े के लिए मान लीजिए कि अगर वाहन 3 साल से कम पुराना है, तो उसकी कीमत उसके बिल्कुल नए रहने के समय की मूल कीमत का 80% होती है। अगर वह कम से कम 10 साल पुराना है, तो उसकी कीमत 50% होती है। अगर वाहन कम से कम 3 साल पुराना है लेकिन 10 साल से कम है, तो उसकी कीमत मूल कीमत का 70% होती है।
CalculateResellPrice(originalPrice, age) फंक्शन बनाइए, जो if, else if और else का उपयोग करके यह तर्क लागू करता है (अभ्यास करना चाहें तो और भी तरीके हैं)।
यह फंक्शन मूल कीमत और वाहन की उम्र आर्गुमेंट के रूप में लेता है और डीलरशिप पर अनुमानित कीमत लौटाता है।
CalculateResellPrice(1000, 1)
// => 800
CalculateResellPrice(1000, 5)
// => 700
CalculateResellPrice(1000, 15)
// => 500
ध्यान दें, रिटर्न वैल्यू एक float64 होती है।
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।