1. go语言初识(一)

本篇博客涉及到的内容:变量和常量、iota常量生成器、类型转换

变量(Variables)和常量(Constants)

变量(Variables)

1. 定义变量
在Go中,可以使用’var‘关键字来声明一个变量,并且可以选择性地指定其类型。例如:

var age int // 声明一个整型类型的变量 age
var name string // 声明一个字符串类型的变量 name

2. 初始化变量
变量可以在声明的同时进行初始化,也可以单独进行初始化。例如:

var age int = 30	// 声明并初始化一个整型变量 age
var name string //	声明一个字符串类型的变量 name
name = 'John'	// 单独初始化变量 name

3.类型推断
在Go中,如果声明变量时不指定类型,编译器会根据右侧的值推断出变量的类型。

var age = 30 	// 编译器右侧的值推断出 age 的类型为 int

4.短变量声明
在函数内部,可以使用短变量声明语法 ‘:=’ 来声明并初始化变量,省略了 ‘var’ 关键字和类型说明。

age := 30 	// 声明并初始化一个整形的变量 age

5.变量赋值
可以使用赋值语句为变量赋新值。

age = 35 	// 为变量 age 赋新值

常量

常量类型只可以定义 bool、数值(整数、浮点数和复数)和字符串。定义的时候就指定的值, 不能修改,常量尽量全部大写。
1.定义常量
使用 ‘const’ 关键字来声明常量,并在声明时初始化。一旦初始化,常量的值在程序运行期间不能被修改。

const PI = 3.1415926	// 声明一个名为 PI 的常量,并且初始化为 3.1415926

2.类型推断
和变量类似,常量也可以根据右侧的表达式推断出类型。

const gravity = 9.8	// 编译器根据右侧的值推断出 gravity 的类型为 float64

3.常量组
在一组常量声明中,除了第一个常量外,后续常量的值可以省略,默认与前一个常量相同。

const (apple = '红富士'orange //	未指定值,默认与上一个常量相同,即 ‘红富士’banana //	未指定值,默认与上一个常量相同,即 ‘红富士’
)

匿名变量

在 Go 语言中,匿名变量是一种特殊的变量,它们用下划线 ‘_’ 表示。匿名变量在编程中通常用于忽略某个值的返回或在某些情况下的占位符。

1.函数返回值中的忽略
当函数返回多个值时,如果只对其中的某些值感兴趣,可以使用匿名变量来忽略其它值。例如:

package mainimport "fmt"func getData() (int, string) {return 10, 'Hello'
}func main() {num, _ := getData()	// 忽略第二个返回值fmt.Println("Number", num)
}

2.忽略循环中的索引或值
在循环中,如果只需要循环的索引或值其中之一,可以使用匿名变量来忽略另一个。例如:

package mainimport "fmt"func main(){numbers := []int{1, 2, 3, 4, 5}for _, num := range numbers {fmt.Println(num)}
}

3.忽略导入包时的初始化
在导入包时,有时候只是为了执行包的初始化函数,而不需要包中的其它内容。可以使用匿名变量来忽略导入包时的初始化操作。例如:

import _ "github.com/go-sql-driver/mysql" // 导入并执行包的初始化函数,但不使用包中的其他内容

iota

在 Go 语言中,‘iota’ 是一个常量生成器,用于常量声明中生成连续的值。‘iota’ 在 ‘const’ 块内使用,每次使用 ‘iota’ 时,它的值会自动递增。通常 ‘iota’ 从0开始,每出现一次就会自增 1 。例如:

package mainimport "fmt"const (Sunday = iota // iota 的值为 0Monday        // iota 的值为 1,会自动递增Tuesday       // iota 的值为 2,会自动递增Wednesday     // iota 的值为 3,会自动递增Thursday      // iota 的值为 4,会自动递增Friday        // iota 的值为 5,会自动递增Saturday      // iota 的值为 6,会自动递增
)func main() {fmt.Println("Sunday:", Sunday)fmt.Println("Monday:", Monday)fmt.Println("Tuesday:", Tuesday)fmt.Println("Wednesday:", Wednesday)fmt.Println("Thursday:", Thursday)fmt.Println("Friday:", Friday)fmt.Println("Saturday:", Saturday)
}

运行上述程序会输出每个常量的值:

Sunday: 0
Monday: 1
Tuesday: 2
Wednesday: 3
Thursday: 4
Friday: 5
Saturday: 6

‘iota’ 可以用于生成一系列相关的常量值,它在定义枚举类型,生成一组有规律的常量等场景下非常有用。

类型转换

在 Go 语言中,类型转换用于将一个数据类型的值转换为另一个数据类型的值。类型转换通常在两种不同类型之间进行,比如将整数转换为浮点数、将字符串转换为整数等。以下是 Go 语言中的类型转换的基本语法和示例:
基本语法

destinationType(expression)

其中,‘detinationType’ 是要转换的目标数据类型, ‘expression’ 是要转换的表达式。
** 示例**
1.整数类型转化为浮点数类型

var num1 int = 10
var num2 float64 = float64(num1)

2.浮点数类型转换为整数类型

var num3 float64 = 15.5
var num4 int = int(num3)

3.字符串类型转换为整数类型

var str string = "123"
var num5 int 
num5, _ = strconv.Atoi(str)	// 使用 strconv 包中的 Atoi 函数进行转换

4.整数类型转换为字符串类型

var num6 int = 456
var str2 string
str2 = strconv.Itoa(num6)	// 使用strconv 包中的 Itoa 函数进行转换

5.其他复杂类型的转换
对于其他复杂类型(如自定义结构体),需要进行类型断言(Type Assertion)来完成转换。

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

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

相关文章

【十大排序算法】----选择排序(详细图解分析+实现,小白一看就会)

目录 一:选择排序——原理 二:选择排序——分析 三:选择排序——实现 四:选择排序——优化 五:选择排序——效率 一:选择排序——原理 选择排序的原理:通过遍历数组,选出该数组…

使用Docker配置深度学习环境——以diffusers为例

Docker的其他信息可以在我的网站上找到,这里假设安装完成了,直接上手。 git clone 仓库地址打开docker目录,找到目标版本: sudo docker build diffusers-pytorch-cuda如果失败,尝试使用换源: sudo nano …

GPT-4o 炸裂发布!你竟然还没用上?(附详细教程)

今天AI界的爆炸新闻非chatgpt-4o莫属,从早上到现在随处可见的文章推送,视频推送。 大家或多或少都有耳闻了,今天主要讲一讲我们普通人到底怎么用?如果不氪金行不行?我就想体验一下可不可以?带着问题往下看 …

提升写作效率的秘密武器:一个资深编辑的AI写作体验

有句话说:“写作是一项你坐在打字机前流血的工作。”而如今,各类生成式软件的涌现似乎打破了写作这一古老的艺术形式壁垒。过去,作家们独自在书桌前冥思苦想,如今,一款名为“玲珑AI工具”的ai写作助手正悄然改变着文案写作行业的创作生态,成为提升写作效率的秘密武器。 在传统…

【数据结构】图和基本算法

文章目录 1. 图的基本概念1.1 图本身的定义1.2 相关概念 2. 图的存储结构2.1 邻接矩阵2.2 邻接表 3. 图的遍历3.1 广度优先遍历(BFS)3.2 深度优先遍历(DFS) 4. 最小生成树4.1 Kruskal算法4.2 Prim算法 5. 最短路径5.1 单源最短路径…

【Linux】基础命令:进程、网络

systemctl命令 控制内置服务 systemctl start | stop | status | enable | disable 服务名 start | stop开启关闭,status状态,enable | disable开启关闭开机自启 date命令 查看系统时间 date [-d] [格式化字符串] date -d “1 day” %Y-%m-%d 修改时区…

表达式运算符位运算

表达式 概念: 由常量、变量、运算符、()组成一句代码。代码最终有一个结果。 // 定义: 由常量、变量、运算符、()组成。由一个结果// 规律1: 当表达式中所有的变量类型小于等于int( int shor…

Linux0.11 中全局描述符表(GDT)

在Linux内核中,全局描述符表(Global Descriptor Table,简称GDT)是一个关键的数据结构,主要用于管理处理器的内存段和相关的权限与属性。它属于x86架构中的保护模式特性,允许操作系统对内存访问进行更精细的…

深度学习技术之卷积神经网络

深度学习技术 卷积神经网络1. 导入需要的库2. 加载并显示两张图像2.1 加载图像2.2 创建子图2.3 打印图像形状2.4 打印合并后的图像数组的形状 3. 卷积层3.1 定义变量3.1.1 卷积核的大小(u)3.1.2 滑动步长(s)3.1.3 输出特征图的数量…

你了解 pom.xml 吗

你了解pomxml吗 springboot 是 java 利器&#xff0c;几乎每个写 java 的同学都会用&#xff0c;但是你了解 pom.xml 吗&#xff1f; 这篇干货查漏补缺。 首先我们创建个 springboot 项目 都选了默认设置&#xff1a; 我把这篇完整粘贴出来 pom.xml <?xml version&quo…

键盘控制小蛇移动

/*** Description 键盘控制小蛇移动*/ package com.ai.snake;import javax.swing.*;public class StartGame {public static void main(String[] args) {JFrame frame new JFrame();frame.setBounds(10,10,900,720);frame.setResizable(false); //窗口大小不可变frame.setDef…

Termius mac:一站式跨平台终端工具

Termius mac 8.4是一款远程访问和管理工具&#xff0c;旨在帮助用户轻松地远程连接到各种服务器和设备。它适用于多种操作系统&#xff0c;包括Windows、macOS、Linux和移动设备。 该软件提供了一个直观的界面&#xff0c;使用户可以通过SSH、Telnet和Mosh等协议连接到远程设备…

Linux 通过关键字查找文件

按文件名查找 find 路径 -name “文件名” 查找当前目录下的所有mk文件 find . -name "*.mk"按关键字查找 find 路径 -name “文件名” | xargs grep -n “关键字” 参数&#xff1a; xargs 是给命令传递参数的一个过滤器&#xff0c;也是组合多个命令的一个工具 -n…

【挑战全网】最全高德地图充电桩接入指南,流量必火!

分享《一套免费开源充电桩物联网系统&#xff0c;是可以立马拿去商用的&#xff01;》 一、和高德直接互联互通的优势&#xff1a; 1、高德官方直接互联互通&#xff0c;提供给合作商户独立发展自主权&#xff0c;不依赖任何第三方平台; 2、自己控制电站的上线、下线、修改电…

Redis教程(八):Redis中zSet类型的常用命令

zSet操作&#xff1a; 往zSet有序集合中添加数据&#xff0c;1&#xff0c;2&#xff0c;3代表权重&#xff0c;one&#xff0c;two&#xff0c;three代表数据 zadd myzset 1 one 2 two 3 three 查询zSet中所有的值&#xff0c;第一个参数为0代表从小到大排序&#xff0c;为…

MemoryModule - 应用编程细节

文章目录 MemoryModule - 应用编程细节概述笔记实验环境升级MemoryModule&#xff0c;在上下文中加入DLL在内存载入前的信息MemoryModule.hMemoryModule.cpp实现接口MemoryGetPayload() 整理 - 在内存载入的DLL中&#xff0c;取得资源表中的信息&#xff0c;取得载入前的DLL内容…

从0开始理解云原生架构

一、云原生发展历史 云原生概念最早起源于2013年&#xff0c;由 Matt Stine 首次提出“Cloud Native”这一术语&#xff0c;这个概念强调了应用需要充分利用云的优势&#xff0c;如弹性、可扩展性和服务化。2015年&#xff0c;Matt Stine出版了《迁移到云原生架构》一书&am…

ChatGPT官网5月14日凌晨1点发布会推出最新GPT4o大模型,贾维斯时刻要来了?

就在今天北京时间2024年5月14日凌晨1点中&#xff0c;OpenAI进行了发布会&#xff0c;这次发布会的内容炸裂&#xff0c;一起来看下吧&#xff01; GPT4o多模态大模型发布 首先公开的是GPT4o多模态大模型的发布&#xff0c;相较于GPT-4turbo速度更快&#xff0c;更便宜。我刚开…

水离子雾化壁炉与会所的氛围搭配

水离子雾化壁炉在会所的氛围搭配可以营造出舒适、现代和高雅的氛围&#xff0c;以下是一些搭配建议&#xff1a; 豪华会所装饰&#xff1a; 将水离子雾化壁炉作为会所豪华装饰的一部分&#xff0c;放置在会所的核心区域或休息区域。选择适合会所风格的壁炉款式&#xff0c;如…

echarts的柱状图使用

1. 柱状图&#xff08;柱体顶部使用外部图片 相关代码 <template><div class"out-bg"><div class"container" ref"warnChartRef"></div></div> </template><script> import * as echarts from echar…