• golang 指针变量赋值


    与其他语言一样,go语言也是提供常量和变量的,这是程序的基础。变量生命VAR,常量生命使用const关键字

    var name = 

    注意在使用过程中,类型和表达式两者都可以省略一个,但是不可以都省略。int 0 boor false string 空串

    其他诸如接口,slice, 指针,map channle ,fun 默认值都是nil。如果是复合类型,结构体其内部所有元素被赋予对应的默认值

    1. package main
    2. import (
    3. "fmt"
    4. "math/rand"
    5. )
    6. func main() {
    7. var i, j, k int
    8. fmt.Printf("i:%d,j:%d,k:%d", i, j, k)
    9. fmt.Println()
    10. var a, b, c = 1, "s", true
    11. fmt.Printf("a:%d,b:%s,c:%t", a, b, c)
    12. fmt.Println("")
    13. f := rand.Float64() * 100
    14. fmt.Printf("f:%g", f)
    15. }

    请注意:= 和= 的区别,=仅仅是赋值,要求变量已经存在,:= 是首次赋值,同事会完成定义

    变量是可变的,而与之对应的就是常量,常量的值是不可以改变的。go语言定义常量使用的是const关键字。

    const (

      多个常量的声明

     )

    以上两种用法中,第一种会根据等号右侧表达式的值推测出其string类型,需要指出的是,第一种用法是go语言中的无类型用法,这种无类型也是一种类型,是一种比基础类型精度更高的类型,至少可以达到256位,比机器硬件精度更高。其中,无类型的 go语言中六种:无类型布尔,无类型整数,无类型文字符号,无类型浮点数,无类型复数,以及无类型字符串。这种无类型可以用来处理基本类型处理不了的数据,比如精度特别大的浮点数

       声明常量时可以使用常量生成器iota,iota可以通过枚举创建一系列相关的值,而且不需要明确定义类型,iota每次从0开始取值,逐次加1

     对于iota,如果仅仅是这种用法,自然是有局限性的,实际上iota是支持在表达式中使用的

    const   (

    p2_0 = 1 << iota

    p2_1

    p2_2

    p2_3

    )

    通过左移运算符达到乘以2的幂的效果

  • 相关阅读:
    《计算机体系结构量化研究方法第六版》1.3 计算机体系结构的定义
    【算法】BFS
    数据库-MySQL
    网安学习-Linux提权
    关于跑腿小哥DMA的介绍
    【Redis入门笔记 09】缓存穿透、击穿与雪崩
    Web3 的通行证——DID 带来数字身份革命
    NX二次开发UF_CAM_ask_tool_matl_db_object 函数介绍
    比特币与火人节
    js算法之旅:枚举
  • 原文地址:https://blog.csdn.net/ens160/article/details/126750237