向sir带你打代码

发布时间 2023-07-20 22:08:35作者: 可乐还是要剩一点~

Go语言

1.基础

1.1变量

  • 变量声明格式

第一种,指定变量类型,如果没有初始化,则变量默认为零值。

var v_name v_type
v_name = value

第二种,根据值自行判定变量类型。

var v_name = value 

第三种,使用 := 进行定义。

v_name := value//不需要进行var进行修饰
//就相当于
var v_name v_type
v_name = value
  • 多变量声明

var v_namae1,v_name2,v_name3 type 
v_namae1,v_name2,v_name3 = v1,v2,v3
//和 python 很像,不需要显示声明类型,自动推断
var v_namae1,v_name2,v_name3 = v1,v2v,v3
//使用 := 进行声明,不需要进行 var 声明
v_namae1,v_name2,v_name3 := v1,v2,v3
// 这种因式分解关键字的写法一般用于声明全局变量
var (
   vname1 v_type1
   vname2 v_type2
)
  • 值类型和引用类型

所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值

var e = 1
var d = e
fmt.Println(e, d)
fmt.Println(&e, &d)
//可以通过&进行查看地址
//输出的地址不相同
  • 简短形式,使用 := 赋值操作符

可以在给对象进行赋值的时候不进行指明类型,使用 := 由系统自动推断

b := 1
a := b
//也可以进行多变量进行赋值
a,b,c := 1,2,"asd"

如果想要进行交换两个变量可以用 a,b = b,a

空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。

1.2常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串

  • 常量的声明

const identifier [type] = value//[里面的可以省略,让编译器判断]
//例如
const c string = "asd"
const c1 = "asd"
//也可以进行多重赋值
const c1,c2,c3  = 1,"dadw",false
//还可以进行枚举
const(
one = 1
   two = 2
   three = 3
)
  • iota

    iota,特殊常量,可以认为是一个可以被编译器修改的常量。

    iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。

    //iota的用法有很多
    const(
    a = iota
       b
       c
    )//结果是a = 0,b = 1,c = 2
    const(
    a = iota
       b
       c = 3.14
       d
       e = iota
       f
    )//结果是a = 0,b = 1,c = 3.14,d = 3.14,e = 4,f = 5
    //对于iota不管赋值还是不赋值都会继续计数
    const(
       a = 1<<iota  //1(二进制)左移iota
       b
       c
       d
    )//每个左移1<<iota位
    //结果是a = 1,b = 2,c = 4,d = 8

     

  •