golang 指针变量赋值

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

var name = 

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

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

golang 指针变量赋值_第1张图片

package main

import (
	"fmt"
	"math/rand"
)

func main() {
	var i, j, k int
	fmt.Printf("i:%d,j:%d,k:%d", i, j, k)
	fmt.Println()
	var a, b, c = 1, "s", true
	fmt.Printf("a:%d,b:%s,c:%t", a, b, c)
	fmt.Println("")
	f := rand.Float64() * 100
	fmt.Printf("f:%g", f)
}

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

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

const (

  多个常量的声明

 )

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

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

golang 指针变量赋值_第2张图片

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

const   (

p2_0 = 1 << iota

p2_1

p2_2

p2_3

)

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

你可能感兴趣的:(golang,golang,开发语言,后端)