zoukankan      html  css  js  c++  java
  • golang 小问题

    1.

    package main
    
    import (
        "fmt"
        "reflect"
    )
    
    const (
        cmask  = 127
    )
    
    func main() {
        var u uint8
        u = 22
        r1 := u + cmask
        fmt.Println(r1)
        fmt.Println(reflect.TypeOf(cmask)) // int
        //------------------
        mask := 0x7f
        //r2 := u + mask
        //fmt.Println(r2)
        fmt.Println(reflect.TypeOf(mask)) // int
    }
    

    cmask 和 mask 反射出来的类型都是 int。为什么 cmask 可以和u进行操作,而 mask 不行 ???

    换人话来说就是:使用没指定类型的 const,就相当于直接使用它对应的常量。

    所以你写 u + cmask 就相当于写了 u + 127,于是不会保存。而 mask 是个普通变量,没有这种特殊待遇,类型是在声明时就固定了(int),因此会因为 int 和 uint8 不兼容而报错。

    4.package的名称:

    如果几个.go在同一个文件夹中,则pachage的名称最后一至,否则容易出现错误.

    5.如果包下载不下来,则在github上把这个包down下来,修改名称后放入到vendor中.

  • 相关阅读:
    List(双向链表)
    Queue(队列)
    Queue(队列)
    Stack(栈)
    Stack(栈)
    Vector(容器)
    gitlab代码库
    Jenkins自动化部署平台
    Maven私服仓库
    VM架构设计文档初稿v0.01
  • 原文地址:https://www.cnblogs.com/jay--zhang/p/6744015.html
Copyright © 2011-2022 走看看