day01 常量和变量

news/2024/7/4 6:36:11/文章来源:https://www.cnblogs.com/dengz/p/18279057

go 常量与变量拓展

常量

package mainimport ("fmt""reflect"
)var c3 intfunc main() {// 变量 定义公式: var 变量名 数据类型 = 值// 1. go 语言中定义变量 : 通过 var 关键字定义变量,后面跟上变量的类型var name string = "张阿三"var age int = 20fmt.Println(name, age)// 2. 定义空变量var name1 string // 默认值 为 空字符串var age1 int     // 默认值 为 0fmt.Println(name1, age1)// 3. 定义多个变量var (name2 stringage2  int)// 给 变量 赋值name2 = "李啊四"age2 = 30fmt.Println(name2, age2)// 修改变量值fmt.Println("修改变量值:")name2 = "王啊五"age2 = 40fmt.Println(name2, age2)// 4. 直接定义变量 且 忽略数据类型.  自动推到,一个短变量声明name3 := "赵啊六" // := 相当于快速定义变量 ,仅支持go语言中的基本数据类型。fmt.Println(name3)/*// 如果 已经定义的变量,再次使用 := 快速声明,出现异常。因为该变量已经被声明var name4 stringname4:="123"*//*// 小结:1. 定义变量 var 变量名称 数据类型2. 给变量赋值,定义的时候可以直接赋值, 或者通过变量名赋值3. := 赋值。 如果是基本数据类型,字符串,数字会自动推到出变量数据类型*/// 5. 变量交换,底层还是引入 第三个变量交换数据var a int = 100var b int = 200fmt.Println("交换前:", a, b)b, a = a, bfmt.Println("交换后:", a, b)// 6. 变量的内存地址// 打印变量内存地址方式1: fmt.Printf 格式化输出/*// fmt.Printf- 有多少个 % 占位符,后面要跟多少个变量- %d 数值类型 int- %s 字符串 string- %p 内存地址 . 加上:&变量- &  取地址符号*/var num intnum = 100fmt.Println("打印数据类型:", reflect.TypeOf(num)) // 打印数据类型fmt.Printf("1数据值=:%d ,内存地址=:%p\n", num, &num)fmt.Println("num=", num)num = 200fmt.Printf("2数据值=:%d ,内存地址:%p\n", num, &num)fmt.Println("num=", num)// 7.匿名变量// 特殊的变量,给匿名变量赋值,该数据就会被丢失,匿名变量不占用内存// 格式:_ 下划线开头// 在函数中,可以直接使用a1, _ := test()fmt.Println(a1)// 8. 变量的 作用域:局部变量和全局变量/*局部变量:只在一定区域生效全局变量:只在当前go文件中生效- 全局变量必须使用 var 或者 const 定义- 不能使用 := 赋值全局变量*/var c1 int = 3var c2 int = 4fmt.Printf("全局就近原则c3数据值1:%d\n", c3)    // 使用全局变量fmt.Printf("全局就近原则c3内存地址1:%p\n", &c3) // 使用全局变量c3 = c1 + c2fmt.Printf("全局就近原则c3数据值2:%d\n", c3)    // 使用全局变量fmt.Printf("全局就近原则c3内存地址2:%p\n", &c3) // 使用全局变量fmt.Printf("c1:%d , c2: %d , c3:%d\n", c1, c2, c3)c2 = 1c3 := c1 + c2 // := 重新定义变量。 使用c3 新变量,就近原则fmt.Printf("c3内存地址:%p\n", &c3)fmt.Printf("c1:%d , c2: %d , c3:%d\n", c1, c2, c3)c1 = 1c3 = c1 + c2 // 使用c3 新变量,就近原则fmt.Printf("c3内存地址:%p\n", &c3)fmt.Printf("c1:%d , c2: %d , c3:%d\n", c1, c2, c3)}func test() (int, int) {return 1, 2
}

变量

package mainimport "fmt"const ConstVariable = "Hello, World!"func main() {/*常量: 理论上不能改变,实际上修改内存数据是可以改变该数据值- 格式:关键字 const 定义变量,通常使用大写定义常量,- 一旦定义常量,是不允许发生数据变更的- 不允许使用 := 定义常量。 :=只作用于变量- 在编译期间就已经确定了其值,因此它们不会分配内存,也就不存在内存地址的概念*///1. 常规格式 : const 常量名 常量类型 = 数据值const URL string = "www.baidu.com"//2. 隐式定义: 常量自动推到数据类型,基于基本数据类型const URL2 = "www.bytedance.com"//3. 场景: PI:3.14const PI = 3.14fmt.Printf("常量地址:%p\n", PI) // 不存在constAddress := ConstVariablefmt.Println("constAddress:", constAddress)fmt.Printf("Address of const: %X\n", &constAddress)constAddress = "123"fmt.Println("constAddress:", constAddress)fmt.Printf("Address of const: %X\n", &constAddress)//4. 特殊常量iota 常量计数器, const 定义多个常量,使用 iota 实现自动计数。const (a = iotab = iotacd = 0e = iota// 如果 定义的 常量没有赋值,则 沿用上面一个常量的定义的赋值。即:iota自动自增f // iota(4)+1=5)fmt.Println(a, b, c, d, e, f)const (i = iotaj = 0k = iota)fmt.Println(i, j, k)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/736066.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyDesktop 浏览器书签管理从未如此简单

作为一名软件开发从业人员, 每天80%的时间都在与浏览器打交道, 一半的时间在用浏览器开发调试, 另一半时间则是在互联网上搜寻各种知识和资源. 为此, 我的浏览器书签栏存储和很多非常棒的链接, 多到2k屏幕分辨率下一栏都放不下, 为此我只好把这些书签的名称改的短一点, 这样就能…

docker基本介绍

虚拟机的部署形式 一个物理机可以部署多个app 每个app独立运行在一个VM虚拟机里面 依然部署很慢 迁移和扩展可以使用VM的克隆 每一个虚拟机都是一个完整的操作系统,虚拟机多的时候,操作系统本身资源也就被消耗过多 企业使用的虚拟化工具为:vmware esxi虚拟化工具 个人学习使…

新生题

MISC kongfu 用winhex打开压缩包,下拉到最后发现keybase64解密后发现是栅栏密码audio 打开发现是一个wav文件,用Audacity打开根据电平,得到01100010 01100001 01101011 01100100 01101111 01110010 二进制转字符进行md5加密Smtpbase64解码foremost 用foremost分解图片分解成…

STM32串口如何输出中文

当你想在串口调试助手实现换行功能时却不行时,试一试将\n改为\r\n 因为我用的是XCOM串口调试助手,就遇到了这样的问题 而当你加入int fputc(int ch, FILE *f)函数却实现不了printf,putchar调用时 需要加入#include<stdio.h>并勾选魔术棒中的Use MicroLIBint fputc(int…

DApp设计与开发 课程笔记(四):NFT交易市场合约

笔记对应课程内容为成都信息工程大学区块链产业学院老师梁培利的DApp 设计与开发 10-13 课 笔记中提到的名词不做过多解释 不懂就搜!开发准备:编辑IDE环境:Vscode+Hardhat 调试:Remix ERC标准智能合约生成巫师:https://docs.openzeppelin.com/contracts/5.x/wizard动手学 …

杂论前端之unipaa_2024-7

创建一个带有 "register-btn" 类的按钮,具有 "getUserInfo" 的开放类型以及一个点击事件处理程序 "register()" --><button class="register-btn" open-type="getUserInfo" bindtap="register"></bu…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」抱个拳,送个礼 在现代自然语言处理(NLP)领域,Transformer 模型的出现带来了革命性的变化。它极大地提升了语言模型的性能和效率,而自注意力机制是其中的核心组件。…

SPI驱动-基于ICM20608六轴MEMS传感器

1 IMX6ULL的SPI控制器简介 SPI是全双工同步串行通讯总线,是一个四线结构的总线协议,其使用比IIC简洁许多,具体关于SPI总线协议的内容可以自行查阅资料。 1.1 SPI控制器介绍 imx6ull中有四个ECSPI控制器,也即四个增强型SPI控制器,也可以当作普通的SPI控制器使用。这里又要和…

基于dspic33ck64mp105的电机控制器开发①

原理图是基于 microchip官方的 MCP1722_Power_Tools 参考设计而来,修改部分如下:https://www.microchip.com/en-us/tools-resources/reference-designs/portable-power-tool-reference-design1,修改了电源模块2,修改了栅极驱动3,增加了蓝牙通信模块4,修改了原版AUX的端口…

7、 Django-路由-router-页面跳转

概念: 在实际开发过程中、一个Django项目会包含很多的app、这时候如果我们只在主路由里进行配置就会显得杂乱无章、 所以通常在每个app中创建各自的urls.py路由模块、然后从根路由出发、将app所属的url请求、全部转发到相应的urls.py 模块 而这个从主路由转发到各个应用的路由…

10、 Django-模板-templates

模板语法 #模板中的变量语法:{{ var }}如果变量不存在、则插入空字符串#方法不能有参数{{ int }}{{ str }}{{ list }}{{ list.0 }}{{ dict }}{{ dict.a }} #dict[a]{{ func }} #传递函数{{ class_obj.func }} #传递类.方法#列表、使用索引、不允许负索引it…

Simple WPF: WPF 透明窗体和鼠标事件穿透

一个自定义WPF窗体的解决方案,借鉴了吕毅老师的WPF制作高性能的透明背景的异形窗口一文,并在此基础上增加了鼠标穿透的功能。可以使得透明窗体的鼠标事件穿透到下层,在下层窗体中响应。一个自定义WPF窗体的解决方案,借鉴了吕毅老师的WPF制作高性能的透明背景的异形窗口一文…

VMware安装Win11环境

准备 Win11的iso镜像 下载链接:https://www.microsoft.com/zh-cn/software-download/windows11/?open_in_browser=true 配置步骤 步骤一——创建虚拟机 1、点击创建新虚拟机2、使用典型模式3、选择镜像位置4、选择虚拟机存放位置5、输入密码,此密码可以随便写6、选择单个文件…

2、爬虫-安装anaconda工具

1、官网:https://www.anaconda.com/download-success2、一直下一步安装即可 3、打开4、输入:jupyter notebook 打开有一个浏览器的界面 5、右上角点击new新建python3(ipykernel)本文来自博客园,作者:little小新,转载请注明原文链接:https://www.cnblogs.com/littlecc/…

50、k8s-DashBoard(k8s的web)-部署

1、下载yaml文件:https://github.com/kubernetes/dashboard/blob/v2.0.0/aio/deploy/recommended.yaml 2、修改yaml文件的service 配置: --------------------------------------------- ---kind: Service apiVersion: v1 metadata:labels:k8s-app: kubernetes-dashboardname…

[JLU] 数据结构与算法上机题解思路分享-第二次上机

这是吉林等通知大学数据结构与算法上机题的题解思路,没有精妙的解法,只是一个记录罢前言 首先,请务必自己尽全力尝试实现题目,直接看成品代码,思维就被拘束了,也很容易被查重。 这里只是思路解析的博客,代码仓库在 JLU_Data_Structures_Record 希望你能在这里找到你想要…

docker 基础学习--尚硅谷教程

1、新建、启动容器docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 2、列出当前所有正在运行的容器docker ps [OPTIONS] 3、退出容器4、重启、退出、删除容器 5、启动守护式容器 docker 常见命令

Bruno安装使用

下载地址直接解压,右键Bruno.exe创建快捷方式创建集合右键集合,New Request指定名称和url指定参数保存并测试

《与光重聚》 —— 属于他的夏日花火

题目是歌曲名称,from 《夏日花火》 (国产galgame ; 视觉小说「夏日花火」原声音乐集 - dizzylab PV视频 因为被平衡树制裁了,所以心血来潮写这篇文章,姑且算是练笔吧(毕竟好久不写鲜花了; 游戏本体发行时间:2022年10月28日,目前无DLC(永远的遗憾; 游戏背景设计是D…