变量使用细节(1)(一)|学习笔记

简介: 快速学习变量使用细节(1)

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:变量使用细节(1)】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9515


变量使用细节(1)(一)


内容介绍:

一、Golang变量使用注意事项

二、变量如何存在的演示

三、Golang变量使用的三种方式

四、多变量声明.

五、全局变量


一、Golang变量使用注意事项

Golang变量与其他语言存在区别。

1.变量表示内存中的一个存储区域

2.该区域拥有自己的名称(变量名)和类型(数据类型)

二、变量如何存在的演示

func main(){

//定义变量声明变量var i int

var i int

//给i赋值

i=10

//使用变量

fmt.Print1n("i=",i)

}

当此代码进行运行,程序执行至“var i int”位置时

内存中发生的变化:内存存在一块数据空间,同时生成变量i,i变量将直接与此数据空间关联。

var i int 未被赋值时,存在默认值0

在人为赋值后,计算机将会通过i变量的名字找到对应空间,将其重新赋值为10。

Print:进行代码的输出

所有代码欲运行必须首先加载于内存之中。


三、Golang变量使用的三种方式

1.指定变量类型,声明后若不赋值,将使用默认值

func main(){

var i int

fmt.Print1n("i=",i)

} 

//此段代表输出的进行,逗号意味着输出i=值后再次输出i值,进行两次输出

//int的默认值为0,其他数据类型默认值此后进行讲解

}

//运行至上个目录

D:\goproject\src\go_code\chapter03\demo01>cd ..

D:\goproject\src\go_code\chapter03\cd demo02

D:\goproject\src\go_code\chapter03\demo02>dir

驱动器D中的卷是 新加卷

卷的序列号是 D2AD-BC9F

D:\goproject\src\go_code\chapter03\demo02的目录

05 11:16     <DIR>

05 11:16     <dir>

05 11:17                  

192 main.go,1个文件            

192字节,2个目录            

23,137,796,096可用字节

D:\goproject\src\go_code\chapter03\demo02>go run main.go

i = 0

//默认值为0

2.根据值自行判定变量类型(类型推导)

go语言、动态编程语言的特点。java于新类型中同样加入了该特点

var num int = 10

//直接进行赋值时,此int可不进行编写。当自行赋值为如10.11时,未明确指定其类型,则计算机将进行类型推导,识别为小数,使得num转变为小数类型。给予何种类型的数据,num就会转变为何种类型。

fmt.Print1n("num=",mum)

}

//查看效果

D:\goproject\src\go_code\chapter03\demo02>go run main.go

i = 0

num = 10.11 

3.省略var,需注意:=左侧的变量不该是已声明过的,否则会导致编译错误

//声明变量。此将一个值交给一个变量的方式省略了var时,则该关键字必须使用冒号。

name = “tom”的使用是错误的,违反了先定义后使用的原则。

//此后的方式等价于var name string   name =“tom”

//以上两句可整合为一句话。即声明时同时赋值

name := “tom”

fmt.Print1n("name=",name)

}

//查看效果

D:\goproject\src\go_code\chapter03\demo02>go run main.go

i = 0

num = 10.11

name = tom

相关文章
|
数据采集 自然语言处理 算法
如何使用Python的Gensim库进行自然语言处理和主题建模?
使用Gensim库进行Python自然语言处理和主题建模,包括:1) 安装Gensim;2) 导入`corpora`, `models`, `nltk`等相关模块;3) 对文本数据进行预处理,如分词和去除停用词;4) 创建字典和语料库;5) 使用LDA算法训练模型;6) 查看每个主题的主要关键词。代码示例展示了从数据预处理到主题提取的完整流程。
351 3
|
Java API PHP
(转载)为什么不推荐使用swoole和hyperf官方框架
(转载)为什么不推荐使用swoole和hyperf官方框架
5023 0
|
11月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
7月前
|
前端开发 JavaScript API
如何快速学习React?
如何快速学习React?
194 1
|
10月前
|
关系型数据库 MySQL Linux
MySQL版本升级(8.0.31->8.0.37)
本次升级将MySQL从8.0.31升级到8.0.37,采用就地升级方式。具体步骤包括:停止MySQL服务、备份数据目录、下载并解压新版本的RPM包,使用`yum update`命令更新已安装的MySQL组件,最后启动MySQL服务并验证版本。整个过程需确保所有相关RPM包一同升级,避免部分包遗漏导致的问题。官方文档提供了详细指导,确保升级顺利进行。
1011 16
|
Kubernetes 监控 网络协议
在K8S中,Pod有几种探针?
在K8S中,Pod有几种探针?
|
11月前
|
监控 安全 物联网安全
物联网安全与隐私保护技术
物联网安全与隐私保护技术
397 0
|
消息中间件 Java Kafka
Golang 语言中 kafka 客户端库 sarama
Golang 语言中 kafka 客户端库 sarama
587 0
|
测试技术 持续交付 数据处理
Python动态类型深度解析与实践
Python动态类型深度解析与实践
615 1
|
前端开发
BootStrap 5 保姆级教程(三):表格 & 图片
BootStrap 5 保姆级教程(三):表格 & 图片