如何在 go lang 中定义单字节变量

我是 golang 的新手,想找到一种定义单个 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))

}

如您所见,我可以用数组包装一个字节,一切正常,但是如何在不使用数组的情况下定义单个字节?谢谢。


呼唤远方
浏览 234回答 2
2回答

梦里花落0921

在您的示例中,这将起作用,使用转换语法T(x):c&nbsp;:=&nbsp;byte('A')转换是形式为T(x)where&nbsp;Tis a type and&nbsp;xis an expression that can convert to type 的表达式T。请参阅此游乐场示例。cb&nbsp;:=&nbsp;byte('A') fmt.Println(unhex(cb))输出:10

慕婉清6462132

如果您不想使用:=语法,您仍然可以使用var语句,它允许您显式指定类型。例如:var&nbsp;c&nbsp;byte&nbsp;=&nbsp;'A'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go