go语言学习笔记—基础—基本语法—常量与变量—常量变量的声明:单个变量的声明与赋值(代码片段)

Locutus Locutus     2023-01-24     353

关键词:

变量来源于数学,是计算机语言中储存计算结果或表示值的抽象概念,变量可以通过变量名访问。变量的功能是存储用户的数据。不同的逻辑有不同的对象类型,也就有不同的变量类型。

经过半个多世纪的发展,编程语言已经形成一套固定的类型,这些类型在不同的编程 语言中基本是相通的。常见变量的数据类型有: 整型、浮点型、布尔型、结构体等。Go语言的每一个变量都拥有自己的类型,必须经过声明才能使用。

Go语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。

1. 声明变量

声明变量的一般形式是使用var关键字:var identifier type

第一种,使用短变量声明并初始化。在主干/条件分支、函数中,指定变量类型,声明后若不赋值,则使用变量默认值。(常用)

// 变量的声明格式:var <变量名称> <变量类型>
// 变量的赋值格式:<变量名称> = <表达式>
var v_name v_type
v_name = value

// 例如
var a int 
a = 10

第二种,在声明变量时赋值(用于全局变量)

var <变量名称> [变量类型] = <表达式>

// 例如
var b int = 321

第三种,省略变量类型,由编译器推断(用于类型可变的变量)

var v_name = value

// 例如
var b = 10

第四种,最简写法(用于在声明同时,赋初值)

v_name := value

// 例如
c := 10

最简写法的形式在开发中例子较多。net.Dial按指定协议和地址发起网络连接,这个函数有两个返回值:一个是连接对象,一个是err对象。下面分别用最简写法和标准变量声明格式示例:

conn, err = net.Dial("tcp", "127.0.0.1:8080)

var conn net.Conn 
var err error 
package main

import (
	"fmt"
)

func main() 
	d := false
	fmt.Println(d)

注意,:=左侧的变量不应该是已经声明过的,否则会导致编译错误。


2. 匿名变量,没有名字的变量

在使用多重赋值时,如果不需要在左值中接收变量,可以使用匿名变量。匿名变量的表现是一个"_"下划线,在使用匿名变量时,只需要在声明变量的地方,使用下划线替换即可。

pacage main 

func GetData() (int, int) 
    return 100 , 200


func main() 
    a, _ := GetData()
    _, b := GetData()
    fmt.Println(a, b)


// 100 200

匿名变量不占用命名空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。


3. Tips

:=只能在函数内部使用,如果声明全局变量,还是需要使用var关键字。 golang中引入:=是为了减少一些临时变量的定义,所以一个好的编码习惯是使用:=来声明临时变量,而对于一个函数中常用变量还是使用var进行声明。

go语言学习笔记—基础—基本语法—常量与变量—常量变量的声明:单个变量的声明与赋值(代码片段)

变量来源于数学,是计算机语言中储存计算结果或表示值的抽象概念,变量可以通过变量名访问。变量的功能是存储用户的数据。不同的逻辑有不同的对象类型,也就有不同的变量类型。经过半个多世纪的发展,... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—常量变量的声明:多个变量的初始化声明与赋值(代码片段)

1.声明的方式多个变量声明与赋值//为类型相同的多个变量赋值varvname1,vname2,vname3typevname1,vname2,vname3=v1,v2,v3并行赋值varvname1,vname2,vname3type=v1,v2,v3自动类型推断//和python很像,不需要显示声明类型,自动推断varvname1,vname2... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—常量变量的声明:变量初始化声明和变量赋值(代码片段)

变量声明出现了:expecteddeclaration,found‘IDENT’。变量声明的要点:=只能在函数体内部使用,只用来声明临时(局部)变量。不能用于声明函数体外的全局变量使用var关键字在函数体外部初始化全局变量,正... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量的数值类型转换(代码片段)

go语言使用类型前置加括号的方式进行类型转换。格式若A是一个全新的类型,需要加:;若之前已经声明过A,则不需要加:。其中,TypeOfA代表要转换的类型,B包括变量、复杂算子和函数返回值等表达式。A[:]=... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量的生命周期:堆(heap)

在给变量分配内存时,使用堆分配类似于向一个房间中摆放家具(为变量分配内存),家具的尺寸(变量所占内存地址空间)有大有小在摆放家具(分配内存)时,需要找一块足够大小的空间&#x... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量作用域:能够使用变量的代码范围(代码片段)

作用域是已声明标识符所表示的常量、变量、类型、函数或包在源代码中的作用范围。Go语言可以在三个地方声明变量:函数体内定义的变量,称为局部变量函数体外定义的变量,称为全局变量函数定义中的变量,... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量的类型零值(代码片段)

类型零值当一个变量或者新值被创建时,如果没有为其明确指定初始值,go语言会自动初始化对应类型的零值。零值并不等于空值,而是当变量被声明为某种类型后的默认值。各类型零值如下:布尔型变量的默认... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量的生命周期:栈(stack)(代码片段)

栈是一种拥有特殊规则的线性表。1.概念栈的操作(入栈和出栈)和栈元素扩展栈只允许向线性表的一端放入数据,之后在同一端取出数据。按照后进先出(或先进后出)的顺序向栈中放入元素的过程叫入栈&#x... 查看详情

go语言学习笔记—基础—基本语法—常量与变量—变量的生命周期:变量逃逸分析——go编译器自动决定变量的内存分配方式(堆还是栈),提高程序运行效率(代码片段)

C/C++语言需要开发者自己管理内存分配,选择合适的内存分配方式以适应不同算法需求:函数的局部变量尽量使用栈内存分配;全局变量、结构体成员变量使用堆内存分配等。变量逃逸分析:go语言把内存分... 查看详情

go基础语法-常量与枚举(代码片段)

常量与枚举1.常量定义用const关键字修饰常量名并赋值,常量命名不同于java等语言,golang中一般用小写,因为在golang中首字母大写表示public权限consta=32.常量使用使用数值常量进行运算时不需要进行强制类型转换,编译器会自动识... 查看详情

go语言语法笔记(代码片段)

文章目录前言基础语法数据类型变量与常量算术与赋值运算符流程控制语句比较与逻辑运算符函数更多数据类型指针(pointer)结构体(struct)数组(array)切片(slice)映射(map)泛型(... 查看详情

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

...录一、go语言与python1.go语言2.python二、变量相关1.go语言的基本语法2.标识符和关键字3.变量声明(1)声明变量时未指定初始值(2)声明变量时指定初始值(3)声明变量时不指定类型(4)短变量声明(5)匿名变量(6)注意小结... 查看详情

go语言基础:语言格式|变量|常量|数据类型(代码片段)

文章目录Go语言格式输出HelloWorld使用命令行编译并执行go文件变量标识符关键字和保留字变量声明变量初始化的必要性短变脸声明匿名变量常量常量声明关键字iota数据类型整形int族特殊整型数字字面量语法(Numberliteralssyntax&#... 查看详情

go语言基础:语言格式|变量|常量|数据类型(代码片段)

文章目录Go语言格式输出HelloWorld使用命令行编译并执行go文件变量标识符关键字和保留字变量声明变量初始化的必要性短变脸声明匿名变量常量常量声明关键字iota数据类型整形int族特殊整型数字字面量语法(Numberliteralssyntax&#... 查看详情

golang学习笔记---go语言变量常量的定义及赋值

单个变量的赋值与声明变量的声明格式:var <变量名称> <变量类型>变量的赋值格式:<变量名称>=<表达式>声明的同时赋值:var<变量名称>[变量类型]=<表达式><变量名>:=<变量值> --->... 查看详情

swift基础1.1——基本的语法—变量和常量

前些日子。第一届Swift开发人员大会开了之后。身边非常多搞OC的朋友就按捺不住了。都认为是时候学一下Swift了,毕竟Swift已是趋势。也是应他们再三要求,让我整理一下Swift的学习心得。今天就从Swift的基本的语法说起——定义... 查看详情

go基础1(代码片段)

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

go笔记-结构类型常量

【类型】1、可以包含数据的变量(或常量),可以使用不同的数据类型或类型来保存数据。使用var声明的变量的值会自动初始化为该类型的零值。类型定义了某个变量的值的集合与可对其进行操作的集合。 2、基本类型 &... 查看详情