繁体   English   中英

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

[英]How to define a single byte variable in 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))
}

如你所见,我可以用数组包装一个字节,事情很顺利,但如何在不使用数组的情况下定义单个字节? 谢谢。

在您的示例中,这将使用转换语法T(x)

c := byte('A')

转换是T(x)形式的表达式,其中T是类型, x是可以转换为类型T的表达式。

这个游乐场的例子

cb := byte('A')
fmt.Println(unhex(cb))

输出:

10

如果您不想使用:=语法,仍然可以使用var语句,它允许您显式指定类型。 例如:

var c byte = 'A'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM