go-基础-1-变量-记录

go 变量

变量定义

var 变量名 变量类型

变量赋值

var 变量名 变量类型 = 变量值

变量名 := 变量值

package mainimport "fmt"func main() {var name string = "chang"fmt.Println(name)
}
package mainfunc main() {var (name stringage  intsex  string)println(name, age, sex)
}
package mainimport "fmt"func main() {//变量初始化并赋值,可自动识别变量类型name := "change"age := 19fmt.Printf("%T,%T", name, age)
}

打印内存地址

package mainimport "fmt"func main() {var age intage = 18fmt.Printf("age:%d,内存地址%p", age, &age)age = 24fmt.Printf("age:%d,内存地址%p", age, &age)age = 200fmt.Printf("age:%d,内存地址%p", age, &age)}

变量交换

package mainimport "fmt"func main() {var (age1 = 18age2 = 30)age1, age2 = age2, age1fmt.Println(age1, age2)
}

匿名变量

描述

匿名变量的特点是一个"_"下划线,表示空白标志符。它可以像其他变量一样用于变量的声明和赋值,但是任何赋给这个标志符的值都将被抛弃,因此该变量不能用于后续的任何计算或操作

例子

package mainimport "fmt"func test() (int, int) {return 100, 200
}func main() {a, _ := test()_, b := test()fmt.Println(a, b)
}

变量作用域

类型

  • 局部变量

    在函数内定义的变量,只能在定义的函数内使用。

  • 全局变量

    在函数外定义的,没有其他函数包裹的变量,能被其他源文件引用。全局变量必须以var开始,如果想要在外部包中使用全局变量,全局变量必须首字母大写。

就近原则

全局变量,局部变量可以重名,但是最近的一个变量有效。

常量

  • const修饰,不可以修改
  • iota 常量计算器,可以理解为const语句块的元素下标

数据类型

  • bool、int、float、byte、String
  • 类型转换,必须显式转换(a := 3 c:= float64(a)),整型不能转换成bool理性

运算符

  • 算数运算符 + - * /
  • 关系运算符 == != > >= < <=
  • 逻辑运算符 && || !
  • 位运算符 << >>…
  • 赋值运算符 += -=…

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

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

相关文章

深度思考线程池面经之二:jdk线程池设计答疑

2 疑问 2.1 这里的“只有当线程池是无界的或者可以拒绝任务时&#xff0c;该队列才有实际价值”&#xff0c;为什么这么说 SynchronousQueue是一种特殊的队列&#xff0c;它不保留任务&#xff0c;而是直接将任务移交给工作线程。这种队列适合于执行大量生命周期非常短的异步…

基于微信小程序的宠物领养平台的设计与实现(Java+spring boot+微信小程序+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于微信小程序的宠物领养平台的设计与实现&#xff08;Javaspring boot微信小程序MySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java…

RT-Thread 线程管理(学习一)

RT-Thread是支持多任务的操作系统&#xff0c;多任务通过多线程的方式实现。线程是任务的载体&#xff0c;也是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文&#xff0c;具体来说就是各个变量和数据&#xff0c;包括所有的寄存器变量、堆栈、内存信息等。 特点 …

局部代码重复执行

给定一个长度为 n 的序列 a &#xff0c;请你构造一个序列 b &#xff0c;序列 b 满足以下条件: 1.序列 b 的长度为 n 2.对于任意 i ∈[1, n]&#xff0c;满足 ( ai bi ) mod i 0 3.对于任意i ∈[1, n]&#xff0c;满足 1 ≤bi ≤10^9 4.对于任意1≤i<j≤n&#xff0c;满足…

【Qt学习】04:QDialog

QDialog OVERVIEW QDialog一、自定义对话框1.模态对话框2.非模态对话框3.练习代码 二、标准对话框1.消息对话框2.文件对话框3.颜色对话框4.字体对话框 对话框是 GUI 程序中不可或缺的组成部分&#xff0c;对话框通常会是一个顶层窗口出现在程序最上层&#xff0c;用于实现短期任…

在大规模推荐系统中整合 ML 模型的经验教训

一、说明 在这篇博文中&#xff0c;我们分享了将 Netflix 大规模搜索和推荐系统的多个相关机器学习模型整合到一个统一模型中的系统设计经验。给定不同的推荐用例&#xff0c;许多推荐系统将每个用例视为单独的机器学习任务&#xff0c;并为每个任务训练定制的 ML 模型。相比之…

python进阶之图像编程 pillow扩展库

一、概述 1.1pillow简介 Python Imaging Library (PIL)是python 下的图像处理模块,支持多种格式&#xff0c;并提供强大的图像处理功能&#xff0c;可以通过pip进行安装后使用。 1.2pillow具体应用 Pillow 库是 Python3 最常用的图像处理库&#xff0c;它支持多种图像格式&a…

npm script命令

1 串行/并行执行命令 //串行 npm-run-all text test npm run text && npm run test //并行改成& npm-run-all --parallel text test npm run text & npm run test2 传递参数 {"lint": "eslint js/*.js","lint:fix"&#xff1a…

VBA Excel自定义函数的使用 简单的语法

一个简单的教程&#xff0c;实现VBA自定义函数。 新建模块 复制后面的代码放进来 函数的入口参数不定义&#xff0c;则认为是一块区域&#xff1b; 反之&#xff0c;如FindChar1 As String&#xff0c;则认为是输入的单值。 循环和分支如下例子&#xff0c;VB比较接近自然语…

第9章 【C语言】用户自己建立数据类型

9.1 定义和使用结构体变量 9.1.1 自己建立结构体类型 变量大多数是互相独立的、无内在联系的。C语言允许用户建立由不同类型数据组成的组合型的数据结构&#xff0c;它称为结构体。 在程序中可以自己建立一个结构体类型&#xff1a; struct Student{int num; //学号为整…

IDEA 配置注释模板

目录 一、配置类模板注释 二、配置方法注释 一、配置类模板注释 打开IDEA&#xff0c;打开settings(快捷键&#xff1a;Ctrl Alt s)&#xff0c;选择Editor&#xff0c;找到File and Code Templates&#xff0c;设置需要配置注释的文件类型&#xff0c;如下图所示&#xf…

Git版本管理(04) git中常见问题整理

1 git pull 和git fetch之间的差别 git pull和git fetch都是用于从远程仓库获取更新的Git命令&#xff0c;它们之间的主要差别如下&#xff1a; git fetch&#xff1a;git fetch命令将从远程仓库下载最新的提交和分支信息&#xff0c;但不会自动合并或更新本地分支。执行git …

rust学习-引用C库

link和extern #[link(name = "...")] 是一个用于链接外部库的属性宏。 可以在 Rust 代码中引入其他语言编写的动态链接库(.so、.dll 等文件),从而实现 Rust 和其他语言的互操作。 #[link(name = "...")] 属性宏用于在 Rust 模块中引入标准 C 库(如 m…

入门超值型32位单片机MM32G0001开发板

灵动微入门级超值型MM32G0001系列MCU。采用48MHz ArmCortex-M0内核&#xff0c;提供16KB Flash和2KB SRAM&#xff0c;并提供丰富的外设资源。适用于多种多样的入门级32位MCU市场&#xff0c;可覆盖广泛的8/16位MCU升级需求。MM32G0001在各种温度范围内的闪存擦写寿命与数据保存…

服务器自动备份、打包、传输脚本

备份脚本 #!/bin/bash #author cheng #备份服务器自动打包归档每天的备份文件 Path/backhistory Host$(hostname) Date$(date %F) Dest${Host}_${Date}#创建目录 mkdir -p ${Path}/${Dest}#打包文件到目录 cd / && \#结合autoback.sh脚本&#xff0c;它往那个地方备&a…

MySQL执行更新的流程

一、加载缓存数据 引擎要执行更新语句的时候 &#xff0c;比如对“id10”这一行数据&#xff0c;他其实会先将“id10”这一行数据看看是否在缓冲池里&#xff0c;如果不在的话&#xff0c;那么会直接从磁盘里加载到缓冲池里来&#xff0c;而且接着还会对这行记录加独占锁。 二…

MySQL数据库初体验

目录 一、数据库的基本概念 二、主流的数据库介绍 三、关系数据库与非关系数据库 1.关系数据库 一、数据库的基本概念 数据&#xff1a;描述事物的符号记录&#xff0c;包括数字、文字、图形、声音、档案记录等。以“记录的”形式按统一的格式进行存储 表&#xff1a;行(…

springboot中关于继承WebMvcConfigurationSupport后自定义的全局Jackson失效解决方法,localdate返回数组问题

一般情况下我们在config里增加jackson的全局配置文件就能满足基本的序列化需求&#xff0c;比如前后端传参的问题。 Configuration public class JacksonConfig {public static final String LOCAL_TIME_PATTERN "HH:mm:ss";public static final String LOCAL_DATE…

js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

相信很多小伙伴在使用js的过程中&#xff0c;经常会需要对js的数据类型进行判断&#xff0c;而js中可以对数据类型进行判断的方法有很多种&#xff0c;最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种&#xff0c;那么他们有什么区别呢&#xff1…

软件测试之可靠性测试

CNAS标识 软件可靠性测试主要目的是通过在有使用代表性的环境中执行软件&#xff0c;以证实软件需求是否正确实现&#xff0c;为进行软件可靠性估计采集准确的数据&#xff0c;并找出所有对软件可靠性影响较大的错误。可靠性测试的特点是不同于硬件可靠性测试&#xff0c;主要…