गो में rune
क्या है?एक रनवे क्या है?
मैं googling किया गया है लेकिन Golang केवल एक लाइन में कहते हैं: rune
int32
के लिए एक उपनाम है।
लेकिन कैसे स्वैपिंग मामलों की तरह पूर्णांक का उपयोग किया जाता है?
निम्नलिखित फ़ंक्शन स्वैपकेस है। सभी <=
और -
क्या है?
और switch
क्यों कोई तर्क नहीं है?
&&
का मतलब और होना चाहिए लेकिन r <= 'z'
क्या है?
func SwapRune(r rune) rune {
switch {
case 'a' <= r && r <= 'z':
return r - 'a' + 'A'
case 'A' <= r && r <= 'Z':
return r - 'A' + 'a'
default:
return r
}
}
उनमें से अधिकांश से http://play.golang.org/p/H6wjLZj6lW
func SwapCase(str string) string {
return strings.Map(SwapRune, str)
}
मैं समझता हूँ कि इस string
के लिए मानचित्रण rune
है इतना है कि यह बदली स्ट्रिंग लौट सकते हैं। लेकिन मुझे समझ में नहीं आता कि वास्तव में rune
या byte
यहां काम करता है।
यह स्पष्ट रूप से केवल ASCII वर्णों के लिए काम करता है, न कि 'ä' जैसे मिश्रित पात्रों के लिए, 'ı' (U + 0131) जैसे अधिक जटिल मामलों को अकेले छोड़ दें। गो को कम केस पर मैप करने के लिए विशेष फ़ंक्शन हैं जैसे 'यूनिकोड। टेलर (आर रन) रने'। – topskip
और एक स्वैपकेस फ़ंक्शन के साथ @ टॉपस्किप के सही उत्तर में जोड़ने के लिए जो सभी कोडपॉइंट्स के लिए काम करता है और न केवल एज़: 'func SwapRune (r rune) rune {if unicode.IsUpper (r) {r = unicode.ToLower (r)} else {आर = यूनिकोड। टॉपर (आर)}; वापसी आर} ' – ANisus
रन int32 मान हैं। यही पूरा जवाब है। वे _ "मैप किए गए" _ नहीं हैं। – thwd