我是golang的新手,想找到一种定义 单个 byte变量的方法。
byte
这是 Effective Go 参考中的演示程序。
package main import ( "fmt" ) func unhex(c byte) byte{ switch { case '0' <= c && c <= '9': return c - '0' case 'a' <= c && c <= 'f': return c - 'a' + 10 case 'A' <= c && c <= 'F': return c - 'A' + 10 } return 0 } func main(){ // It works fine here, as I wrap things with array. c := []byte{'A'} fmt.Println(unhex(c[0])) //c := byte{'A'} **Error** invalid type for composite literal: byte //fmt.Println(unhex(c)) }
如您所见,我可以用数组包装一个字节,一切正常,但是如何在不使用数组的情况下定义单个字节?谢谢。
在您的示例中,使用转换语法T(x)可以正常工作:
T(x)
c := byte('A')
转换是形式的表达式,T(x)其中T是类型,x是可以转换为type的表达式T。
T
x
请参阅此操场示例。
cb := byte('A') fmt.Println(unhex(cb))
输出:
10