golang初识和变量,常量,iota(代码片段)

mcoming mcoming     2023-05-05     350

关键词:

一、go语言与python

1. go语言

  1. go语言语法固定,没有那么多花里胡哨的写法,语法也简单。一共25个关键字

  2. 本身支持高并发,数据计算,做后端天然有优势。(云计算,区块链,网络服务行业,新兴的公司基本都用go语言)

2. python

  1. 开发效率高,所以周期短
  2. 爬虫加数据分析
  3. 人工智能

二、变量相关

1. go语言的基本语法

  • package 后面跟的是包名,用来声明当前这个文件是属于哪个包。,如果是属于main包,则在执行这个文件后,会把该文件打包成一个.exe程序。

  • import 包名用来导入的包

  • func main()是整个程序的入口,没有参数。

  • 在函数外部只能放置标识符(即 变量,常量,函数,类型)的声明

2. 标识符和关键字

  • 标识符就是python中的变量名, 由字母数字和_(下划线)组成,并且只能以字母和_开头 。

  • 关键字就是有各种特定作用的名字。如python中的if def return等等。go语言里有25个关键字,并且还有37个保留字。我们不建议用关键字或保留字当做变量名即标识符。

3. 变量声明

  • 类似前端JavaScript的变量声明方式

(1)声明变量时未指定初始值

格式1: var 变量名 变量类型

行尾无需分号

例如:
var name string
var age int
var isOk bool

格式2:批量声明
var (
    a string
    b int
    c bool
    d float32
)
  • 已经声明的变量若未对其进行初始化,他们都会有一个默认值

    • 数字类型是0,字符串是空字符串, 布尔型变量默认为false。 切片、函数、指针变量的默认为nil

(2)声明变量时指定初始值

  • 格式:
    var 变量名 类型 = 表达式
    
    例子:
    var name string = "Q1mi"
    var age int = 18
    
    一次初始化多个变量:
    var name, age = "Q1mi", 20

(3)声明变量时不指定类型

  • 声明变量时不指定类型,则这个时候编译器会根据等号右边的值来推导变量的类型完成初始化

    var name = "Q1mi"
    var age = 18

(4)短变量声明

  • 在函数内部,可以使用更简略的 := 方式声明并初始化变量

    package main
    
    import (
        "fmt"
    )
    // 全局变量m
    var m = 100
    
    func main() 
        n := 10
        m := 200 // 此处声明局部变量m
        fmt.Println(m, n)
    

(5)匿名变量

  • 类似python中的解压缩时,用_代替不需要的值。 匿名变量用一个下划线_表示

    func foo() (int, string) 
        return 10, "Q1mi"
    
    func main() 
        x, _ := foo()
        _, y := foo()
        fmt.Println("x=", x)
        fmt.Println("y=", y)
    
    • 匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。

(6)注意小结

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. :=不能使用在函数外。
  3. _多用于占位,表示忽略值

三、常量

  • 什么是常量
  • 常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值

  • 声明常量只是把var换成了const常量在定义的时候必须赋值

1.普通声明常量方式:
const pi = 3.1415
const e = 2.7182

2.批量声明不同值的常量方式:
const (
    pi = 3.1415
    e = 2.7182
)

3.批量声明同一值的常量:const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
const (
    n1 = 100
    n2
    n3
)

四、iota

  • 什么是iota
    • iota是go语言的常量计数器,只能在常量的表达式中使用
    • iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次
    • iota可理解为const语句块中的行索引
  • 5种实例:

    1. 普通例子
    const (
            n1 = iota //0
            n2        //1
            n3        //2
            n4        //3
        )
    
    
    2. 使用_跳过某些值
    const (
            n1 = iota //0
            n2        //1
            _
            n4        //3
        )
    
    
    3.iota声明中间插队
    const (
            n1 = iota //0
            n2 = 100  //1
            n3 = iota //2
            n4        //3
        )
        const n5 = iota //0
    
    
    4. 定义数量级
    // 这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8
    const (
            _  = iota 
            KB = 1 &lt;&lt; (10 * iota)
            MB = 1 &lt;&lt; (10 * iota)
            GB = 1 &lt;&lt; (10 * iota)
            TB = 1 &lt;&lt; (10 * iota)
            PB = 1 &lt;&lt; (10 * iota)
        )
    
    
    5. 多个iota定义在一行
    const (
            a, b = iota + 1, iota + 2 //1,2
            c, d                      //2,3
            e, f                      //3,4
        )

golang:iota用法(代码片段)

const( a1=iota //0 a2 //1 a3 //2 _ //3,但是被忽略了 a5 //4)const( a1=iota //0 a2=100 //100本来应该是1,但是被人为赋值为100了,所以是100 a3=iota //2 a4 //3)//同一行复用iota不会使值变化.(iota的值只与常量声明的行数相关)const( 查看详情

golang✔️走进go语言✔️第三课常量(代码片段)

【Golang】✔️走进Go语言✔️第三课常量概述常量常量计算iota概述Golang是一个跨平台的新生编程语言.今天小白就带大家一起携手走进Golang的世界.(第3课)常量常量(Constant)是指程序在执行过程中不会改变的固定值.常量可以是任何... 查看详情

go语言基础之常量(代码片段)

...常量的声明目录:常量iota几个常见的iota示例常量相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。constpi=3.14co... 查看详情

golang核心编程(代码片段)

文章目录一、基础知识:1.语言简介:1.2语言特性:1.3Go语言特性:2.初识Go程序:3.Go词法单元:3.1token:3.2标识符:3.3操作符和分隔符:3.4字面常量3.5总结:4.变量与常量:4.1变量:4.1.1声明方式:4.1.2变量属性:4.2常量:5.基本数据类型:5.1布尔类型:5.2... 查看详情

golang快速入门合理实用常量(代码片段)

go的常量很方便iota是一个只能在常量表达式中使用的一个标识符,是一个常量计数器,初始值为0,新增一行,下面的常量会+1下面是关于常量的小例子packageconstant_testimport"testing"/*constant012*/const( a=iota+1//1 b //2 c//3)/*consta... 查看详情

01.变量常量和数据类型(代码片段)

1.变量和常量变量初始化varv1int=10varv2=10v3:=10变量赋值varv1intv1=10v2:=20v1,v2=v2,v1//多重赋值_,_,name=getName()//匿名变量预定义常量const//const关键字将iota初始化为0v1=iotav2=iota//1v3=iota//2constv1=iota<<1//1v2//2表达式格式一样可省略v3//4const ... 查看详情

golangbasic_leaming变量常量变量命名规则(代码片段)

阅读目录变量变量类型Go语言中变量的声明1、var声明变量2、一次定义多个变量3、短变量声明法4、匿名变量5、变量的初始化6、类型推导Go语言中的常量1、使用const定义常量2、const常量结合iota的使用(了解)1、iota只能在... 查看详情

golangbasic_leaming变量常量变量命名规则(代码片段)

阅读目录变量变量类型Go语言中变量的声明1、var声明变量2、一次定义多个变量3、短变量声明法4、匿名变量5、变量的初始化6、类型推导Go语言中的常量1、使用const定义常量2、const常量结合iota的使用(了解)1、iota只能在... 查看详情

go语言的特殊变量iota(代码片段)

iota,是go语言的特殊常量,可以认为是一个可以被编译器修改的常量。在每一个const关键字出现时,被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。来看看代码:consty=iotaconstr=iotafuncmain()fmt... 查看详情

golang使用iota

iota是golang语言的常量计数器,只能在常量的表达式中使用。iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义࿰... 查看详情

初识c语言之常量与变量(代码片段)

常量与变量前言一、变量1.全局变量和局部变量全部变量局部变量2.二者的区别二、常量字面常量const修饰的常变量#define定义的标识符常量enum枚举常量总结前言今天要说的这哥俩,是所有的程序里不可或缺的元素之一,所... 查看详情

go基础系列:常量和变量(代码片段)

常量(Constants)和iota常量包含不会发生更改的数据。常量的数据类型只能是boolean、number(int/float/complex)或string。定义方式:constNAME[TYPE]=VALUETYPE基本可以省略,因为常量都是简单数据类型,编译器可以根据值推断出它的数据类型。例... 查看详情

go-常量(代码片段)

...常量同时声明时其值逐行增加,iota可以看作自增的枚举变量,专门用来初 查看详情

(转)golang--使用iota(常量计数器)

iota是golang语言的常量计数器,只能在常量的表达式中使用。iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。使用iota能简化定义,在定... 查看详情

(转)golang使用iota(代码片段)

iota是什么我们来看golang源码的注释里面是怎么说的iotaisapredeclaredidentifierrepresentingtheuntypedintegerordinalnumberofthecurrentconstspecificationina(usuallyparenthesized)constdeclaration.Itiszero-indexed.大概就可以理解为 查看详情

(转)golang使用iota(代码片段)

iota是什么我们来看golang源码的注释里面是怎么说的iotaisapredeclaredidentifierrepresentingtheuntypedintegerordinalnumberofthecurrentconstspecificationina(usuallyparenthesized)constdeclaration.Itiszero-indexed.大概就可以理解为 查看详情

go语言常量与变量初识(代码片段)

标识符和关键字标识符标识符只能以字母和_组成,并且只能以字母和_开头。关键字Go中有25个关键字:breakdefaultfuncinterfaceselectcasedefergomapstructchanelsegotopackageswitchconstfallthroughifrangetypecontinueforimportreturnvar变量变量声明变量需要先声... 查看详情

go基础1(代码片段)

目录变量声明变量有名变量匿名变量常量常量的声明及基本使用iota关于iota的面试题及使基本数据类型整形特殊整形数字字面量语法浮点数布尔型 字符串字符串转义定义多行字符串byte和rune类型修改字符串类型转换fmt.Printf中的... 查看详情