当前位置: 首页 > news >正文

【golang】派生数据类型---指针 标识符、关键字等

1、指针

对比C/C++中的指针,go语言中的指针显得极为简洁,只是简单的获取某个空间的地址 或者 根据指针变量中的内容 获取对应存储空间的内容等操作。
具体示例如下:
在这里插入图片描述
go中使用指针需要注意的点:

  1. 可以通过指针改变它所指向的内存空间中的内容
  2. 指针变量接收的一定是具体的值
  3. 指针变量的地址必须相匹配
  4. 基本数据类型都有对应的指针类型,形为 *数据类型

2、标识符定义规则:

 1、组成部分:字母、数字、下划线
 2、注意:不能以数字开头、严格区分大小写、不能包含空格、不可以使用GO中保留的关键字
 3、见名知意:增加可读性
 4、下划线 “_”在go中本身是一种特殊的标识符,称之为空标识符。所以下划线仅能作为占位符使用,不能单独作为标识符使用。
 5、起名规则
  包名:package的名字尽量和目录保持一致,尽量采取有意义的包名,做到简短、有意义但不要和标准库发生冲突
  变量名、函数名、常量名:采用驼峰法
  注意:
   如果变量名、函数名、常量名首字母大写,则可以被其他的包访问,如果首字母小写,则只能在本包中使用。
   import导入语句通常放在文件开头包申明的下面
   导入的包名需要使用双引号引起来
   包名是从 $GOPATH/src/后开始计算的,使用 / 进行路径分隔

3、关键字 && 预定义的标识符

  1. 关键字就是程序发明者规定的具有特殊意义的单词,又叫保留字。go语言中一共有25个关键字。
break    default      func    interface    select
case     defer        go      map          struct
chan     else         goto    package      switch
const    fallthrough  if      range        type
continue for          import  return       var

作用:这里做一简单介绍,后续遇到详细展开
在这里插入图片描述

  1. 预定义标识符:go语言中一共有36个预定义标识符,包含基础数据类型和系统内嵌函数
    在这里插入图片描述
    运算符
    在这里插入图片描述
    注意:
     1、go中没有条件运算符(三目运算符)
     2、go中只有后置++,–;没有前置

4、输入相关,与用户交互

方式1:使用 Scanln函数,具体示例如下:
在这里插入图片描述
方式2:使用Scanf函数
在这里插入图片描述

5、go语言中的流程控制

顺序结构 、分支结构、 循环结构

分支结构
 if分支

//单分支
if 条件表达式 {逻辑代码
}
//多分支
if 条件表达式1 {逻辑1
} else if 条件表达式2 {逻辑2
} else if 条件表达式n {逻辑n
} else {xxx
}
//双分支
if 条件表达式1 {逻辑1
} else {xxx
}

 使用的注意事项:
  条件表达式左右的括号可以不写,go语言中建议不写
   if else if 与表达式之间一定要有空格
  在 golang中,{}是必须要有的,哪怕只有一行代码

 switch 分支

//基本语法
switch 表达式 {case1,值2...:语句块1case3,值4...:语句块2....default:语句块
}

 使用注意事项:
  1、switch后是一个表达式(常量值、变量、一个有返回值的函数均可以)
  2、case后的各个值的数据类型必须和switch后表达式的值类型一致
  3、case后可以跟多个表达式,使用逗号间隔
  4、case后面的表达式如果是常量值,则要求其不能重复
  5、case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出这个switch,如果一个都匹配不到,则会进入default
  6、default语句不是必须的且位置是随意的,但是建议写上
  7、switch 后可以不带表达式当作if来使用,一般少见
  8、switch后面也可以直接定义一个变量用分号结束,不推荐
  9、switch穿透!利用fallthrough关键字。如果在case语句块后加fallthrough,则程序会据继续执行下一个case,这个就叫做switch穿透

循环结构

//语法结构
for 初始表达式; 布尔表达式; 迭代因子; {循环体;
}

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
for循环在第一次反复之前需要进行初始化,即执行初始表达式,随后对布尔表达式进行判断,true—>执行循环体,false–>终止循环
在每一次循环过程中迭代因子不断递增 or 递减

for range结构:是Go语言特有的一种迭代结构,在许多场景下都非常实用。for range可以遍历数组、切片、字符串、map及通道。语法结构如下:

for key, val := range coll {.....
}

对break关键字的理解:跳出当前循环,即跳出离break最近的那一层循环

for i:=0; i < 4; i++ {for j:=0; j < 4; j++ {if(i == 2 && j == 2) {break;}}
}

在这里插入图片描述
如果想要break直接跳出整个循环,即跳出外层的for循环,需要使用一个新的概念,叫做 标签,具体示例如下:

lable:for i := 0; i < 4; i++ {for j := 0; j < 4; j++ {fmt.Printf("i: %v, j: %v \n", i, j)if i == 2 && j == 2 {break lable}}}

在这里插入图片描述
同理,continue 关键字也有着同样的用法,即 默认生效的是离他最近的for循环,但是可以通过加标签的方式达到对任意循环生效的效果。

goto
 Golang中的goto语句可以无条件的转移到程序中的指定行(比如打个标签lable,使用goto lable实现无条件跳转)
 goto语句通常与条件语句配合使用,可以来实现条件转移
 在Go程序设计中一般不建议使用goto语句,以免造成程序流程的混乱

相关文章:

【golang】派生数据类型---指针 标识符、关键字等

1、指针 对比C/C中的指针&#xff0c;go语言中的指针显得极为简洁&#xff0c;只是简单的获取某个空间的地址 或者 根据指针变量中的内容 获取对应存储空间的内容等操作。 具体示例如下&#xff1a; go中使用指针需要注意的点&#xff1a; 可以通过指针改变它所指向的内存空…...

深度学习技术

深度学习是什么&#xff1f; 深度学习&#xff0c;英文名为Deep Learning&#xff0c;其实就是机器学习的一种高级形式。它的灵感来源于人脑神经网络的工作方式&#xff0c;是一种让机器可以自主地从数据中学习和提取特征的技术。你可以把它想象成一位小侦探&#xff0c;通过不…...

TCP/IP网络江湖——物理层护江山:网络安全的铁壁防线(物理层下篇:物理层与网络安全)

TCP/IP网络江湖——物理层护江山:网络安全的铁壁防线(物理层下篇:物理层与网络安全) 〇、引言一、物理层的隐私与保密1.1 加密技术的护盾1.2 安全传输协议的密约1.3 物理层的安全控制1.4 面对未知威胁的准备二、电磁干扰与抵御2.1 电磁干扰的威胁2.2 抗干扰技术的应用2.3 屏…...

python-数据可视化-使用API

使用Web应用程序编程接口 &#xff08;API&#xff09;自动请求网站的特定信息而不是整个网页&#xff0c;再对这些信息进行可视化 使用Web API Web API是网站的一部分&#xff0c;用于与使用具体URL请求特定信息的程序交互。这种请求称为API调用 。请求的数据将以易于处理的…...

窗口看门狗

从下往上看: 1. 时钟设置 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);//使能独立看门狗时钟 WWDG_SetPrescaler(WWDG_Prescaler_8);//看门狗预分频器WWDG counter clock (PCLK1/4096)/8 2.设置窗口值 实际就是设置WWDG_CR的低七位值, 但是这个值要大于0x40(也就是…...

开发新能源的好处

风能无论是总装机容量还是新增装机容量&#xff0c;全球都保持着较快的发展速度&#xff0c;风能将迎来发展高峰。风电上网电价高于火电&#xff0c;期待价格理顺促进发展。生物质能有望在农业资源丰富的热带和亚热带普及&#xff0c;主要问题是降低制造成本&#xff0c;生物乙…...

error: can‘t find Rust compiler

操作系统 win11 pip install -r requirements.txt 报错如下 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/56/fc/a3c13ded7b3057680c8ae95a9b6cc83e63657c38e0005c400a5d018a33a7/pyreadline3-3.4.1-py3-none-any.whl (95 kB) Building wheels for collected p…...

全面解析MES系统中的车间退料管理

一、车间退料管理的定义&#xff1a; 车间退料是指在生产过程中&#xff0c;将不合格或多余的物料、半成品或成品从车间环节返还到供应链的过程。车间退料管理则是指对这一退料过程进行规范化、系统化的管理和跟踪。 二、车间退料管理的流程&#xff1a; 1. 退料申请&#xf…...

探究finally代码块是否执行

情况一&#xff1a;try代码块正常执行&#xff0c;无异常&#xff0c;finally代码块无retrun&#xff1b; 代码演示 public class Test38 {public static void main(String[] args) {int foo foo();System.out.println("foo:" foo);}public static int foo() {tr…...

leetcode刷题(字符串相加、包含每个查询的最小区间、模拟行走机器人、环形子数组的最大和、满足不等式的最大值、四数之和、树中距离之和)

目录 1、字符串相加 2、包含每个查询的最小区间 3、模拟行走机器人 4、环形子数组的最大和 5、满足不等式的最大值 6、四数之和 7、 树中距离之和 1、字符串相加 class Solution:def addStrings(self, num1: str, num2: str) -> str:i len(num1) - 1 # num1的末…...

Grafana reporter定时报表踩坑记录

前言:本以为测试grafana reporter功能能很顺利,但按照网上大佬分享的记录进行操作,屡屡报错,不知是因为我的grafana部署在k8s中之前由低版本升级到高版本导致的,还是其他原因,在grafana中安装Grafana Image Renderer 一直报错。 Github地址:https://github.com/IzakMar…...

Flutter 状态管理引子

1、为了更好地了解状态管理&#xff0c;先看看什么是状态。 在类似Flutter这样的响应式编程框架中&#xff0c;我们可以认为U相关的开发就是对数据进行封装&#xff0c;将之转换为具体的U1布局或者组件。借用Flutter官网的一张图&#xff0c;可以把我们在第二部分做的所有开发…...

CFC编程入门_【10分钟学会】

什么是CFC&#xff1a; 【差不多10分钟全学会】 CFC是图形化编程&#xff0c; 跟单片机的连线一样&#xff0c; 唯一的区别&#xff1a;功能块右侧是【只能输出】引脚。 只有左侧引脚可以输入输出。 有哪些控件&#xff1a; 指针&#xff1a;用于拖动功能块。 控制点&#xf…...

golang无需创建新切片

在 Go 语言中&#xff0c;append(b, 0)[:len(b)] 是一种常见的用法&#xff0c;用于在切片 b 后追加一个元素&#xff0c;并返回旧切片的前 len(b) 个元素。 这种用法的目的是将一个新元素追加到切片中&#xff0c;并确保切片的长度保持不变。具体步骤如下&#xff1a; 1. ap…...

Django基础5——ORM中间程序

文章目录 一、基本了解二、ORM基本操作2.1 连接数据库2.1.1 使用sqlite数据库2.1.2 使用MySQL数据库 2.2 对数据库操作2.2.1 增&#xff08;前端数据——>数据库&#xff09;2.2.2 查&#xff08;数据库——>前端展示&#xff09;2.2.3 改&#xff08;修改数据&#xff0…...

SpringAOP详解(上)

当需要在方法前后做一些操作就需要借助动态代理来实现 一、动态代理实现方法 1、jdk自带实现方式 jdk实现代理是被代理类实现接口的方式 public interface UserInterface {void test(); }public class UserService implements UserInterface {public void test() {System.o…...

C++ 存储类

存储类定义 C 程序中变量/函数的范围&#xff08;可见性&#xff09;和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C 程序中可用的存储类&#xff1a; autoregisterstaticexternmutablethread_local (C11) 从 C 17 开始&#xff0c;auto 关键字不再是 C 存储…...

【教程分享】Docker搭建Zipkin,实现数据持久化到MySQL、ES

1 拉取镜像 指定版本&#xff0c;在git查看相应版本&#xff0c;参考&#xff1a; https://github.com/openzipkin/zipkin 如2.21.7 docker pull openzipkin/zipkin:2.21.7 2 启动 Zipkin默认端口为9411。启动时通过-e server.portxxxx设置指定端口 docker run --name zi…...

数据库——MySQL高性能优化规范

文章目录 数据库命令规范数据库基本设计规范1. 所有表必须使用 Innodb 存储引擎2. 数据库和表的字符集统一使用 UTF83. 所有表和字段都需要添加注释4. 尽量控制单表数据量的大小,建议控制在 500 万以内。5. 谨慎使用 MySQL 分区表6.尽量做到冷热数据分离,减小表的宽度7. 禁止在…...

openapi中job提交

openapi中job提交 简介创建job查看job查看job 的描述查看job 的日志 镜像地址&#xff1a; https://www.jianshu.com/p/fcb3094f8c48?v1693020692471 简介 这里使用微软OpenPAI, 在nvidia的GPU设备上进行job测试。 创建job protocolVersion: 2 name: lenet_gpu_pytorch112_…...

从场景到代码:如何用研华Navigator为PCIE1751规划数据采集方案(AI/AO/DI/DO全解析)

从场景到代码&#xff1a;如何用研华Navigator为PCIE1751规划数据采集方案&#xff08;AI/AO/DI/DO全解析&#xff09; 在工业自动化领域&#xff0c;数据采集系统的设计往往面临一个核心矛盾&#xff1a;硬件性能的丰富性与实际需求的精准匹配。研华PCIE-1751作为一款多功能数…...

专业解密QQ音乐加密格式:QMCDecode让音乐文件重获自由播放权

专业解密QQ音乐加密格式&#xff1a;QMCDecode让音乐文件重获自由播放权 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c…...

国产OK镜靠谱品牌怎么选?欧普康视硬核资质与全维度实力详解

导读&#xff1a;当下国民近视问题愈发普遍&#xff0c;大众对安全、高效的非手术视力矫正需求持续攀升。角膜塑形镜&#xff08;OK镜&#xff09;凭借非手术、可逆、日间高清裸眼视力的核心优势&#xff0c;成为青少年近视防控、成年人视力矫正的主流选择。但市面上OK镜品牌繁…...

2026实测:如何把知网论文AI率从90%降到4%?(手把手教你降AI)

一份知网AIGC检测报告摆在面前&#xff1a;疑似度84.9%。几乎整篇论文都被标红&#xff0c;系统判定其中84.9%的内容"疑似AI生成"。这个数字意味着什么&#xff1f;意味着在任何一所高校的标准下&#xff0c;这篇论文都不可能通过审查。 然而同一篇论文经过处理后再次…...

3分钟搞定音乐格式转换:你的私人音乐解锁神器使用全攻略

3分钟搞定音乐格式转换&#xff1a;你的私人音乐解锁神器使用全攻略 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: htt…...

Seedance2.0内容创作干货!学会这四点教你用 Seedance 2.0 拍出电影感!

Seedance 2.0 之所以能把商业广告、影视制作的质感拉满&#xff0c;核心在于它对“全参调用”的支持。想彻底驯服它&#xff0c;建议你在输入 Prompt 和参数时注意以下四点&#xff1a;1. 结构化你的提示词不要把所有想法堆砌成一句话。Seedance 2.0 对结构化文本的理解极强&am…...

Spring AI Alibaba零基础速成(5) ---- Memory(记忆)

大模型默认只能单轮对话&#xff0c;每次对话完成后就会丢失当前对话记忆&#xff0c;我们之前了解过可以通过AssistantMessage把大模型回复结果存储起来下次提问时在发送给大模型&#xff0c;不过使用过于麻烦和受限&#xff0c;Spring AI 和Spring AI Alibaba都实现了更好实现…...

AI Agent 艺术创作能力探索

AI Agent 艺术创作能力探索:从生成式工具到自主创作主体的范式跃迁 关键词 AI Agent、生成式艺术、多模态创作、自主创作系统、计算美学、大模型推理、人机协同创作 摘要 本文从第一性原理出发,系统拆解AI Agent艺术创作的底层逻辑、技术架构、实现机制与产业价值。我们将…...

使用TaoTokenCLI工具一键配置多开发环境下的API接入

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用TaoTokenCLI工具一键配置多开发环境下的API接入 在团队协作或个人多项目开发中&#xff0c;为每个项目或每台机器手动配置大模…...

利用 Taotoken 为 AIGC 应用构建高可用的模型调度中间层

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 利用 Taotoken 为 AIGC 应用构建高可用的模型调度中间层 在构建图像或文本生成类应用时&#xff0c;开发者常常面临一个核心挑战&a…...