符文文字只是32位整数值 ( 但是它们是未类型化的常量,因此它们的类型可以更改
)。它们代表unipre代码点。例如,符文文字
'a'实际上就是数字
97。
因此,您的程序几乎等同于:
package mainimport "fmt"func SwapRune(r rune) rune { switch { case 97 <= r && r <= 122: return r - 32 case 65 <= r && r <= 90: return r + 32 default: return r }}func main() { fmt.Println(SwapRune('a'))}如果要查看Unipre映射,该映射与该范围内的ASCII相同,应该很明显。此外,实际上32是字符的大写和小写代码点之间的偏移量。因此,通过添加
32到
'A',你
'a',反之亦然。



