3、做中学 | 二年级上期 Golang数据类型和常量/变量声明使用

一、基本数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。

数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

Go 基本数据类型

类别类型描述零值示例取值范围
布尔型bool逻辑值,表示真或假falsetrue, falsetruefalse
整数型int平台相关有符号整数(32位系统=32位,64位系统=64位)042, -1032位系统:-2³¹ ~ 2³¹-1
64位系统:-2⁶³ ~ 2⁶³-1
int88位有符号整数0127, -128-128 ~ 127
int1616位有符号整数032767, -32768-32768 ~ 32767
int3232位有符号整数(别名 rune02147483647-2147483648 ~ 2147483647
int6464位有符号整数09223372036854775807-9223372036854775808 ~ 9223372036854775807
uint平台相关无符号整数(大小同 int010032位系统:0 ~ 2³²-1
64位系统:0 ~ 2⁶⁴-1
uint88位无符号整数(别名 byte0255, 0x0A0 ~ 255
uint1616位无符号整数0655350 ~ 65535
uint3232位无符号整数042949672950 ~ 4294967295
uint6464位无符号整数0184467440737095516150 ~ 18446744073709551615
uintptr无符号整数,用于存储指针地址0系统内存地址足够存储指针值的整数
浮点型float32IEEE-754 32位单精度浮点数0.03.14, -0.001±1.18e⁻³⁸ ~ ±3.4e³⁸,精度约6位小数
float64IEEE-754 64位双精度浮点数(默认浮点类型0.03.1415926535, -2.5e10±2.23e⁻³⁰⁸ ~ ±1.8e³⁰⁸,精度约15位小数
复数型complex64由两个 float32 组成(实部+虚部)(0+0i)1+2i, 3i实部/虚部范围同 float32
complex128由两个 float64 组成(实部+虚部)(0+0i)1.5+3.2i实部/虚部范围同 float64
字符串型string不可变的 UTF-8 字符序列"""Hello", "世界"任意字节序列(支持 Unicode)
字节别名byteuint8 的别名,用于二进制数据0'a', 0x41uint8 (0 ~ 255)
字符别名runeint32 的别名,表示 Unicode 码点0'中', '\u4e2d'int32(支持所有 Unicode 字符)

在这里插入图片描述

同其它编程语言一样,go的数据类型基本覆盖人类文化内容,数字、字符串、布尔、复数

二、常量

在go的国度中,根据上边的划定的范围,可以进行创建常量和变量了。先来看下常量…

// 常量定义格式
const 常量名 [常量类型] =

学了其它编程语言的,看到这感觉不适应的,你的感觉没错,新的知识正在占领大脑!

从上边的定义格式,可以看到:

  1. const: 定义常量使用的是“const”关键词
  2. 常量名: 以后使用常量的话,尽量使用大写进行命名,并使用下划线分词
  3. 常量类型:只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
  4. []中括号:可以进行省略,自动根据值进行类型推导
  5. 值:声明过后,不能被修改
	// 常量// 显式声明// const LENGTH int = 10// 隐式声明 根据值 进行推导出数据类型const Length = 10// 不能进行修改Length = 20fmt.Println(Length)

在这里插入图片描述

另外,对于多个相同类型的声明可以简写为:

const Length, WIDTH = 10, 20

三、变量

在这里插入图片描述
变量怎么比喻呢?
我这边为了更好的理解,使用了上边的老中医药材柜图片,如果把各种各样的数据看作是各种药材的话!
每个抽屉代表go开辟的内存空间,进行储存药材(变量值),而外边的名称就是变量名(见名识意)!

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

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

var 变量名 变量类型

可以了解到:

  1. var:声明变量使用“var”关键词
  2. 变量名:由字母、数字、下划线组成,其中首个字符不能为数字
  3. 变量类型:基本数据类型和符合类型
  4. 值:上边没有赋值,后续进行赋值操作。如果声明的时候进行赋值,可以省略变量类型,原因是go可以进行类型推导
    // 变量// 变量声明// 第一种 声明后赋值var length intlength = 10// 第二种 声明时赋值//var width int = 20// 也可以去掉 变量类型 使用类型推导var width = 20// 第三种 省略var  注意 := 左侧的变量名 是没有声明过的,否则编辑报错height := 30fmt.Println(length, width, height)

多个变量同时声明

	// 多个变量声明 省略类型 进行类型推导var a, b, c = 10, 20.8, "hello"fmt.Println(a, b, c)

四、关键字

什么是关键字,就是go语言已经使用过的关键词,我们不能再使用了,命名包名、文件名、声明变量名、函数名等,为了避免冲突不能使用!

下面列举了 Go 代码中会使用到的 25 个关键字或保留字:

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符:

appendboolbytecapclosecomplexcomplex64complex128uint16
copyfalsefloat32float64imagintint8int16uint32
int32int64iotalenmakenewnilpanicuint64
printprintlnrealrecoverstringtrueuintuint8uintptr

程序一般由关键字、常量、变量、运算符、类型和函数组成。

本次作业

  1. 熟练知道go的数据类型,说一个值,要立即反应出该值的数据类型
  2. 会声明常量/变量的
  3. 了解有哪些关键字,避免后续命名冲突

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

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

相关文章

php5 与 mysql8的兼容问题

php5 与 mysql8的兼容问题 环境 Linux: ubuntu20.04 Mysql&#xff1a; 8.0.33 Php: 5.6 代码 # cat test.php <?php$link mysqli_connect("127.0.0.1", "root", "123456");if ($link) {echo "ok"; } else {echo "fail&…

从0开始学linux韦东山教程Linux驱动入门实验班(1)

本人从0开始学习linux&#xff0c;使用的是韦东山的教程&#xff0c;在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。本人将前几章的内容大致学完之后&#xff0c;考虑到后续驱动方面得更多的开始实操&#xff0c;后续的内容将以韦东山教程Linux驱动入门实…

MSPM0G3507学习笔记(二) 超便捷配置led与按键

电赛备赛中&#xff0c;打算系统过一遍MSPM0G3507的各个部分&#xff0c;同时把过程记录下来。本系列以代码全部能用复用性、可移植性高为目的。本系列所有的代码会开源至github&#xff0c;如果觉得有用&#xff0c;请点个赞/给我的github仓库点一颗star吧。 github地址&…

day03-微服务01

【黑马程序员SpringCloud微服务技术栈实战教程&#xff0c;涵盖springcloud微服务架构Nacos配置中心分布式事务等】 暂时无法在飞书文档外展示此内容 之前我们学习的项目一是单体项目&#xff0c;可以满足小型项目或传统项目的开发。而在互联网时代&#xff0c;越来越多的一线…

嵌入式Linux系统内存占用率高的原因、后果与防控全解析

作者&#xff1a;嵌入式Jerry 【欢迎关注“嵌入式Jerry”&#xff0c;获取更多Linux/驱动/性能实战干货】 推荐阅读&#xff1a;《Yocto项目实战教程&#xff1a;高效定制嵌入式Linux系统》 京东正版促销&#xff0c;支持作者&#xff01;https://item.jd.com/15020438.html 嵌…

【案例分享】如何用 DHTMLX Scheduler 构建灵活高效的资源调度系统?

在企业信息化进程加速的今天&#xff0c;资源调度与任务管理已成为ERP系统中的关键模块。今天&#xff0c;我们带来了一个来自 X-Interactive 的精彩应用案例&#xff0c;看他们如何借助 DHTMLX Scheduler 实现更智能的任务分配与资源规划。 DHTMLX Scheduler 试用下载 &…

Kafka 向 TDengine 写入数据

TDengine Kafka Connector 包含 TDengine Source Connector 和 TDengine Sink Connector 两个插件。用户只需提供简单的配置文件&#xff0c;就可以将 Kafka 中指定 topic 的数据&#xff08;批量或实时&#xff09;同步到 TDengine&#xff0c;或将 TDengine 中指定数据库的数…

智慧医院核心引擎:IBMS 系统守护医疗环境高效与安全​

在医疗场景中&#xff0c;时间就是生命&#xff0c;效率与安全容不得分毫差错。传统医院面临着设备管理分散、应急响应迟缓、能耗居高不下等难题&#xff0c;严重制约医疗服务质量与运营效率。而 IBMS 系统&#xff0c;作为智慧医院的核心引擎&#xff0c;以尖端科技重塑医疗环…

平均性能提升70%,盖雅工场基于腾讯云数据仓库TCHouse-D构建实时报表平台

点击蓝字⬆ 关注我们 本文共计3569字 预计阅读时长11分钟 导语 腾讯云数据仓库TCHouse-D助力盖雅工场构建了架构简洁、查询高效的报表平台。目前该平台已经支撑了盖雅工场上千个租户的实时报表需求&#xff0c;报表查询时效性整体可达亚秒级&#xff0c;相较原架构&#xff0c;…

zynq裸机开发:更改系统时间保存文件到SD卡

1、首先勾选文件系统库 2、之后导出一个SD卡文件写demo 3、SD卡创建或修改文件时的创建时间和修改时间是通过调用BSP包的diskio.c文件中的get_fattime函数 4、找到这段函数&#xff0c;先把他注释掉&#xff0c;之后考到导出demo的最后一行&#xff0c;稍作修改&#xff0c…

“荔枝使”的难题怎么破:A*运输路径算法编程实践

原文首发请访问&#xff1a;https://cloud.tencent.com/developer/article/2533317 荔枝最初被称为“离支”&#xff0c;亦作“离枝”。 这是一种非常精贵的水果&#xff0c;一旦离开枝头&#xff0c;色泽、香气和味道会在短时间内迅速变质。 但它又是非常美味&#xff0c;宋…

python基础知识,以及7个练习案例

python的用途 搭建网站网络爬虫科学计算与大数据分析人工智能与机器学习设计动画游戏&#xff1a;例如pygame图形用户接口开发&#xff1a;模块与框架&#xff0c;如tkinter python基础课程包含内容 自动化运维人工智能应用web开发多媒体处理自动化办公python爬虫 python是…

Java 编程之命令模式

什么是命令模式 命令模式Command Pattern 是一种行为型设计模式&#xff0c;它把请求封装成对象&#xff0c;从而将请求的发送者与执行者完全解耦&#xff0c;支持排队、撤销、日志记录等操作。。 模式目标&#xff1a; 解耦命令的发出者&#xff08;Invoker&#xff09;与执…

TCP 三次握手与四次挥手全流程详解

TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。为了建立和终止连接,TCP 使用了 三次握手 和 四次挥手 的机制。本文将从原理到状态变化,详细解析 TCP 连接的建立与释放全过程,力求专业、准确。 一、TCP 三次握手(Three-Way Han…

MySQL 慢 SQL 识别与优化

一、识别慢 SQL 1. 启用慢查询日志 -- 查看当前慢查询配置 SHOW VARIABLES LIKE slow_query%; SHOW VARIABLES LIKE long_query_time;-- 开启慢查询日志&#xff08;临时生效&#xff09; SET GLOBAL slow_query_log ON; SET GLOBAL long_query_time 2; -- 设置慢查询阈值…

墨记APP:水墨风记事,书写生活诗意

在快节奏的现代生活中&#xff0c;记录生活的点滴成为了一种独特的仪式感。无论是日常的琐事、突发的灵感&#xff0c;还是对未来的规划&#xff0c;一款好用的记事软件都能帮助我们更好地整理思绪&#xff0c;留住美好瞬间。墨记APP正是一款兼具美学与实用性的记事软件&#x…

龙芯7A1000桥片数据手册解读(时序)

RTC是电池&#xff0c;理论上一直是有电的&#xff0c;图示指的是接上220V电之后切换为系统的电。顺序是这样的&#xff1a;接上220V电之后系统的12V供电就有了&#xff0c;12V转为5VSB&#xff0c;5VSB供给RTC3V&#xff0c;此时RTC3V转为系统供电而不是电池供电。这里的5VSB指…

无人机气压计模块技术解析

一、运行方式 1. 基础原理 气压计通过测量大气压力间接计算高度。无人机飞行中&#xff0c;气压随高度上升而降低&#xff0c;传感器将压力信号转为电信号&#xff0c;经ADC转换为数字值。 2. 工作流程 数据采集&#xff1a;同步获取压力与温度值。 原始数据处理&…

第十四节:第三部分:IO流:前置知识-什么是方法递归以及递归的形式、递归算法三要素

什么是方法递归以及递归的形式 递归算法三要素 代码 代码一&#xff1a;认识一下递归的形式 package com.itheima.Recurtion; //目标:认识一下递归的形式 public class RecurtionTest1 {public static void main(String[] args) {test2();}//直接方法递归public static void…

论文阅读笔记:Digging Into Self-Supervised Monocular Depth Estimation

论文阅读笔记&#xff1a;Digging Into Self-Supervised Monocular Depth Estimation 1 背景2 创新点3 方法4 模块4.1 自监督训练4.2 优化自监督深度估计4.2.1 每个像素的最小重建损失4.2.2 自动掩码静态像素4.2.3 多尺度估计4.2.4 最终的训练损失 4.3 额外考虑 5 效果 1 背景 …