当前位置: 首页 > 面试题库 >

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

桂高昂
2023-03-14
问题内容

我是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是可以转换为type的表达式T

请参阅此操场示例。

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

输出:

10


 类似资料:
  • 类是用于描述事物的的属性和行为的,而 Go 语言中的结构体正好可以用于描述事物的属性和行为 所以在 Go 语言中我们使用结构体来定义一个类型 type Person struct { name string // 人的属性 age int // 人的属性 } // 人的行为 func (p Person)Say() { fmt.Println("my name

  • 4.2.2 字节变量 定义字节变量的定义符为DB/BYTE(DefineByte),每个字节只占一个字节单元。其中:BYTE是MASM6.0及其以后版本的数据类型说明符,随后的其它类型说明符同此说明。 例如: COUNTER  DB 6  DB 'A', 'D',0Dh, '$' TABLE  DB 1, 3, 5, 7, 9, 11 上面的定义语句经汇编后所产生出的内存单元分配情况如图4.1所示

  • java中可以定义字节数组: 请问PHP中如何定义字节数组呢? PHP字节数组定义

  • 问题内容: 我正在从用户那里获得一个物理位置地址,并试图安排它来创建一个URL,该URL以后将用于从Google Geocode API获取JSON响应。 最终的URL字符串结果应与此类似,但不能有空格: http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View

  • 问题内容: 在我的 Dockerfile中 ,我想 定义 稍后 可以 在Dockerfile中使用的变量 。 我知道该指令,但是我不希望这些变量是环境变量。 有没有一种方法可以 在Dockerfile范围内声明变量 ? 问题答案: 您可以使用-请参阅https://docs.docker.com/engine/reference/builder/#arg 该指令定义了一个变量,用户可以在构建时使用

  • 有没有一种方法可以在Dockerfile范围声明变量?