Go语言入门【1】数据类型、变量、常量

news2025/4/8 7:39:53

常见基本数据类型

uint8:无符号8位整形,取值范围:0-255

uint16:无符号16位整形,取值范围:0-65535

uint32:无符号32位整形,取值范围:0-4294967295

uint64:无符号64位整形,取值范围:0-18446744073709551615

uint:32 或 64 位

int8:有符号8位整形,取值范围:-128-127

int16:有符号16位整形,取值范围:-32768-32767

int32:有符号32位整形,取值范围:-2147483648-2147483647

int64:有符号64位整形,取值范围:-9223372036854775808-9223372036854775807

int:与uint一样大小

byte:类似 uint8

rune:类似 int32

float32:32位浮点类型

float64:64位浮点类型

string:字符串

bool:布尔类型,取值true或false

变量

Go 语言变量名由字母、数字、下划线组成,首字符不能为数字,不能使用关键字作为变量名。

Go语言中的25个关键字:

image-20220114162851723

使用关键字var,并指定变量类型

// 声明单个变量
var 变量名 变量类型
// 声明多个变量
var 变量名1, 变量名2 变量类型

初始化变量

// 声明并初始化单个变量
var 变量名 变量类型 =// 声明并初始化多个变量
var 变量名1, 变量名2 变量类型 =1,2

示例1,当只声明不初始化变量时,则输出默认值,int类型默认值为0,string默认值为""空字符串,bool类型默认false

package main

import "fmt"

func main() {
	var s string
	fmt.Println(s)						// 输出
	var a, b int
	fmt.Println(a, b)					// 输出0 0
}

示例2:声明并初始化变量

package main

import "fmt"

func main() {
	var s string = "hello world"
	fmt.Println(s)						// 输出hello world
	var a, b int = 1, 2
	fmt.Println(a, b)					// 输出1 2
}

使用关键字var,不指定类型

var 变量名 =

示例:

package main

import "fmt"

func main() {
	var s = "hello world"
	fmt.Println(s)				// 输出hello world
	var a, b = 1, 2
	fmt.Println(a, b)			// 输出1 2
}

使用:=

变量名 :=

示例:

package main

import "fmt"

func main() {
	s := "hello world"
	fmt.Println(s)				// 输出hello world
	a, b := 1, 2
	fmt.Println(a, b)			// 输出1 2
}

使用该方法,如果某个变量在之前已经使用var的方式进行了声明,再使用:=方式会出现编译错误,但是可以使用=进行复制不会报错。

多变量声明

该方法声明变量多用于声明全局变量

var(
    变量名1 变量类型 =1		// 同样可以不指定变量类型,使用 变量名 = 值 的形式,但是不能使用 := 
    变量名2 变量类型 =2
)

示例:

package main

import "fmt"

var (
	s string = "hello world"
	a int = 1
	b int = 2
)

func main() {
	fmt.Println(s)				// 输出hello world
	fmt.Println(a, b)			// 输出1 2
}

变量注意事项

  1. 在GO语言中,如果声明了一个变量,就必须使用,如果变量声明了但是不使用就会报错。
  2. 全局变量可以只声明不使用不会报错。

常量

常量就是不会改变的值,一般用于用于在程序运行期间不会被改变的值,常量和变量的声明类似,只是将var关键字变成了const。与变量不同的是,常量在声明的时候必须赋值。

使用const定义常量

示例:

package main

import "fmt"

// 多常量声明
const (
	s = "hello world"
	a = 1
)

func main() {
	const PI = 3.1415							// 不指定常量类型
	const E float32 = 2.7182			// 指定常量类型
	fmt.Println(s)								// 输出hello world
	fmt.Println(a)								// 输出1
	fmt.Println(PI)								// 输出3.14
	fmt.Println(E)								// 输出2.7182
}

iota

iota是Go语言中的常量计数器,只能在常量的表达式中使用,iota在const出现时被初始化为0,在const中每增加一个常量定义,则iota加1。

示例:

package main

import "fmt"

// 多常量声明
const (
	a = 1					// iota = 0
	b = 2					// iota = 1
	c = iota				// iota = 2
)

func main() {
	const d = iota			// iota = 0
	fmt.Println(d)			// 输出0
	fmt.Println(c)			// 输出2
}

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

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

相关文章

高分辨空间代谢组学测试的样品要求以及常见问题

高分辨空间代谢组学可实现定量检测,亦可定性检测,且可一次可同时检出多种类型的化合物,包括脂类、小分子代谢物、蛋白质、药物及其载体等,并且能够呈现出这些物质的空间分布情况。高分辨空间代谢组学测试的样品要求: …

单链表思路讲解+C语言代码实现

单链表的实现什么是单链表单链表的结构图讲解创建链表打印链表尾插链表尾删链表头插链表和头删链表查询链表特定位置插入特定位置删除销毁链表总结学海无涯,苦作舟啊! 老铁们加油 源代码放在总结处,需要的同志可以直接跳转到最后什么是单链表…

题库API调用详细教程

题库API调用详细教程 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

洛谷千题详解 | P1010 [NOIP1998 普及组] 幂次方【C++、Java、Python、Pascal语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Pascal源码: Java源码: Python源码: ------------------------------------------------…

C#基础:类class与结构struct的区别

一、类class 类class是引用类型,可以直接赋值为null,默认值也是null XClass xClass null;//语法正确 一般来说,某个类对象使用另一个类的对象赋值时,则两者共用一个内存地址【节约内存空间】,ReferenceEquals引用比…

JDK的安装-详细版

大家好,我是研究大数据领域的 查德-常,大数据是一个随着数据量快速增长而应运而生的行业,让我来带你了解大数据吧。 JDK的安装JDK安装1.1 搜索jdk1.2 登录Oracle1.3 安装jdk1.4 环境配置1.5 验证是否安装好jdk由于粉丝中初学者比较多&#xf…

《web课程设计》用HTML CSS做一个简洁、漂亮的个人博客网站

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: ​​【主页——🚀获取更多优质源码】​​ 🎓 web前端期…

西祠胡同社区彻底消失

我是卢松松,点点上面的头像,欢迎关注我哦! 今天打开西祠胡同,发现网站备案注销了,域名(www.xici.net)停止解析了,半年前1元转让股权的事也不了了之,西祠胡同就这样静悄悄的消失了,连…

MongoDB 数据库(一):MongoDB的介绍与安装

目录一、MongoDB数据库的介绍与安装1.1 NoSQL数据库简介1.2 MongoDB 简介1.2.1 再议业务应用场景1.2.2 为什么要使用 MongoDB1.2.3 适用场景二、安装和使用MongoDB客户端2.1 Windows 安装 MongoDB2.2 Linux-Centos7 安装 MongoDB2.3 安装Studio 3T一、MongoDB数据库的介绍与安装…

PyCharm连接远程Docker环境

1. docker 配置 使用-p参数暴露一个端口用于ssh连接。 docker run -itd --name wangchao_paddle --gpus all -p 8899:8888 -p 8822:22 -v /data:/root/data registry.baidubce.com/paddlepaddle/paddle:2.3.0-gpu-cuda10.2-cudnn7 /bin/bash如果镜像没有ssh则需要先安装。&am…

后台获取不到请求头中token信息的解决方法

前言 项目要做单点登录功能,于是在shiro的基础上加入了自定义的 Filter,使用 JWT 自定义生成和校验token信息。 功能写好后自己在 postman 中测试了效果,将 token 放在 Headers 中请求后台接口(如下图,还没发现问题&…

【微服务】基于Ribbon实现负载均衡

前言 我们在上篇文章中讲解了如何通过Nacos实现服务治理,由此引发的负载均衡的问题。这篇文章就介绍一个SpringCloud alibaba的另一个组件:Ribbon,如何通过Ribbon实现负载均衡。 负载均衡 什么是负载均衡? 通俗的讲&#xff0…

C语言学习笔记

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录前言C的面向过程和C的面向对象1.C的数据类型与常量2.C中的变量1、什么是变量?2、变量名字的命名规则&#…

openlayer 加载4547坐标系 以及 wfs服务数据(或其他坐标系)

1.首先查看坐标系基础信息如范围等:如下图: 2.若将地图设置成4547坐标系: 核心代码: proj4.defs("EPSG:4547","projtmerc lat_00 lon_0114 k1 x_0500000 y_00 ellpsGRS80 unitsm no_defs typecrs");register…

ModelBox姿态匹配:抖抖手动动脚勤做深呼吸

摘要:本案例使用Windows版本的ModelBox SDK进行二次开发,主要是针对姿态匹配案例开发实践。本文分享自华为云社区《姿态匹配:抖抖手动动脚勤做深呼吸》,作者:吴小鱼。 在之前发布的AI说ModelBox推理真的高效吗一文中&…

对于含有琥珀酰亚胺酯的叠氮试剂Azidoacetic Acid NHS Ester,N3-C5-NHS ester,N3-C3-NHS ester 知识分享

本文重点为大家总结关于含有琥珀酰亚胺酯基团的叠氮基相关试剂的性质特点,西安凯新生物科技有限公司​主要从Azidoacetic Acid NHS Ester、N3-C5-NHS ester、N3-C3-NHS ester进行分享。 一、Azidoacetic Acid NHS Ester CAS:824426-32-6 中文名&#xff…

Linux shell脚本之回顾及实用笔记

一、前言 我们从事运维的小伙伴,除了自动化运维外,在没有自动化条件下,借助shell脚本/Python脚本来提升运维效率,无疑是一个必选项,当前也可以自建自动化运维平台,我们这里还是以Linux shell脚本为主,来汇总一些常用的运维脚本,对于有基础的同学,也随本文一起回顾下相…

【学习笔记】《模式识别》2:聚类分析

聚类分析 文章目录聚类分析一、聚类分析的概念二、相似性的测度1.距离的四条基本公理2.欧氏距离(Euclid,欧几里得)--距离3.马氏距离(Maharanobis)4.马氏距离与欧氏距离之间的关系5.明氏距离(Minkowaki)6.汉…

4款实用的黑科技软件,白嫖党最爱,功能强大到离谱

闲话少说,直上干货。 1、Dism 这是一款国人研发,免费又好用的电脑优化工具,备受全球电脑爱好者追捧,它解决了系统安装与维护两大痛点问题——自定义设置与优化,相当于给电脑请了免费“保姆”。从系统安装到调校&#x…

LabVIEW基础-VI Scripting

文章目录使用过程前面板界面修改属性节点VI属性无输入时默认当前VI。输入VI引用的静态方法输入VI引用的动态方法获取对象引用从VI获取前面板所有控件的引用设置修饰物的前景色获取选项卡1上所有的数值控件并设置标签前景色从VI获取前面板选项卡的引用-转换为特定的类-获取选项卡…