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

Go编程规范

文章目录

  • 注释
  • 转义符
  • 定义变量
    • 方法一:指定变量类型,声明后若不赋值,使用默认值
    • 方法二:根据值自行判定变量类型(类型推导)
    • 方法三:省略var, 注意:=左侧的变量不应该是已经声明过的,否则会导致编译错误[`推荐`]
    • 全局变量和局部变量
    • fmt.Printf查看变量
  • 常量
    • iota
  • 定义函数
  • 多行书写
  • 参考


注释

// 单行注释/* 多行注释
第一行
第二行
*/

转义符

在这里插入图片描述

定义变量

由字母、数字、下划线组成,只能以字母或下划线开头。

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

var 变量名 变量类型

方法一:指定变量类型,声明后若不赋值,使用默认值

func main() {var i inti = 6fmt.Println("i=", i)
}

方法二:根据值自行判定变量类型(类型推导)

var j = 7
fmt.Println("j=", j)

方法三:省略var, 注意:=左侧的变量不应该是已经声明过的,否则会导致编译错误[推荐]

k := 8
fmt.Println("k=", k)

全局变量和局部变量

// 声明多个全局变量
var (num1  = 100num2  = 200name1 = "tom"
)func main() {//声明局部变量var (num3  int    = 300num4  int    = 400name2 string = "jack")//输出全局变量fmt.Println(num1, num2, name1)fmt.Println(num3, num4, name2)
}

fmt.Printf查看变量

func main() {var n = 10fmt.Printf("%T\n", n) //查看变量的数据类型fmt.Printf("%v\n", n) //查看变量的值fmt.Printf("%b\n", n) //二进制方式输出
}

常量

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
不能修改

func main() {const num1 = 200fmt.Printf("num1:%v", num1)num1 = 300fmt.Printf("num1:%v", num1)
}

在这里插入图片描述

iota

iota在const关键字出现时将被重置为0(const 内部的第一行之前),const 中每新增一行常量声明将使iota 计数一次(iota 可理解为const 语句块中的行索引)

func main() {const (a = iota  //iota为0,a=0b = "tom" //iota为1c = iota  //iota为2,a=2)fmt.Println(a, b, c)
}

定义函数

func main() {	// 大括号必须在上面,不能单独起一行fmt.Println("hello,word!")
}

多行书写

用逗号分行

func main() {fmt.Println("aaaaaaaaaaaaaa","bbbbbbbbbb","cccccccccc")
}

在这里插入图片描述

参考

视频:https://ke.qq.com/course/4298934/12948828185532598#term_id=104461528

相关文章:

Go编程规范

文章目录 注释转义符定义变量方法一:指定变量类型,声明后若不赋值,使用默认值方法二:根据值自行判定变量类型(类型推导)方法三:省略var, 注意:左侧的变量不应该是已经声明过的,否则会导致编译错误[推荐]全局…...

premiere 新建 视频导入 视频拼接 视频截取 多余视频删除

1 新建项目 文件 -> 新建 -> 项目 2 导入 2.1 方法一 直接从本地 将 文件拖入对应的文件夹 2.2 方法二 鼠标右键在指定素材文件夹, 选择导入 选择对应本地文件夹对应素材 3 预设 -> 粗剪 -> 在指定模块处 创建序列预设 3.1 指定模块处 鼠标右键 -> 新建项目…...

笔记01:第一行Python

NameError 名字不含特殊符号(只能是英文、数字、下划线、中文等)名字区分大小写名字先定义后使用 SyntaxError 不符合Python语法书写规范除了语法成分中的保留拼写错误输出中文符号if、for、def等语句末尾忘记冒号 IdentationError 缩进错误&#x…...

资产连接支持会话分屏,新增Passkey用户认证方式,支持查看在线用户信息,JumpServer堡垒机v3.7.0发布

2023年9月25日,JumpServer开源堡垒机正式发布v3.7.0版本。在这一版本中,在用户管理层面,为了提高使用JumpServer操作资产的效率,JumpServer支持对会话进行分屏操作,用户可以在一个浏览器页面打开多个会话,方…...

uniapp项目实践总结(二十二)分包优化和游客模式

导语:这篇主要介绍应用分包和游客模式相关的内容。 目录 应用分包游客模式 应用分包 微信对于小程序的打包压缩后的代码体积是有限制的,网页和 APP 也可以适用分包功能,因此需要进行分包添加以及分包优化。 分包添加 在pages.json文件中…...

Unity中UI组件对Shader调色

文章目录 前言一、原理在Shader中直接暴露的Color属性,不会与UI的Image组件中的Color形成属性绑定。因为UI的Image组件中更改的颜色是顶点颜色,如果需要在修改组件中的颜色时,使Shader中的颜色也同时改变。那么就需要在应用程序阶段传入到顶点…...

PhpStorm 2023年下载、安装教程和好用插件,保姆级教程

PhpStorm 2023年下载、安装教程和好用插件,保姆级教程 文章目录 PhpStorm 2023年下载、安装教程和好用插件,保姆级教程前言一、安装PhpStorm二、好用的插件简体中文包Chinese(Simplified)Language Pack 三、卸载插件CTRLN 查找类CTRLSHIFTN 全局搜索文件…...

1960-2017年世界各国总和生育率数据

1960-2017年世界各国总和生育率数据 1、时间:1960-2017年 2、指标:生育率 3、范围:全球各国 4、来源:世界银行 5、指标解释: 总生育率表示假设妇女度过整个生育期并按照当期的年龄别生育率生育孩子所生育的孩子数…...

java.math.BigDecimal is not a supported Java type

文章目录 问题描述:结果:原因:Thrif支持的数据类型解决:规范 问题描述: 前端查询后端的pcs总数字段,此字段需要从mydsql的db中获取。PCS字段类型为decimal(26,6),于是打算在response中使用 Big…...

Unity之Hololens开发如何实现UI交互

一.前言 什么是Hololens? Hololens是由微软开发的一款混合现实头戴式设备,它将虚拟内容与现实世界相结合,为用户提供了沉浸式的AR体验。Hololens通过内置的传感器和摄像头,能够感知用户的环境,并在用户的视野中显示虚拟对象。这使得用户可以与虚拟内容进行互动,将数字信…...

二、ubuntu主机端tftp及nfs服务开发环境安装

一.主机端tftp服务环境安装及配置 检查是否已经安装tftp server $dpkg -s tftpd-hpa#如果提示未安装服务,则执行下面安装指令$sudo apt-get install tftpd-hpa tftp-hpa#tftpd-hpa服务端 tftp-hpa客户端创建tftp启动目录,用于存放内核与设备树文件&a…...

Android 12修改usb tp触摸唤醒

前言 Android 12系统休眠时,需要不管接什么型号usb tp都能够触摸唤醒。 Android12系统中,usb tp要能够触摸唤醒,需要在frameworks/native/services/inputflinger/reader/mapper/TouchInputMapper.cpp中将mParameters.wake赋值为true&#xff…...

#define定义标识符详解

0.预定义符号 在讲解#define之前先给大家介绍几个预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C(标准C)&#xff…...

开发者必备!如何将闲置iPad Pro打造为编程工具,使用VS Code编写代码

文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. ipad pro通过软件远程vscode6.1 创建TCP隧道 7. ip…...

【Java 基础篇】Java 模块化详解

Java 9引入了一项重要的功能:模块化(Module System)。模块化是一种将代码和资源封装到可重用和独立的单元中的方法,它有助于改善代码的可维护性、可重用性和安全性。本文将介绍Java模块化的基本概念、如何创建和使用模块以及一些最…...

【2023面试题大全,都是常问面试题】

JAVA基础 面向对象和面向过程的区别 面向过程:基于步骤的编程方式,用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可 面向对象:基于对象的编程方式,通过定义类来描述对象的属性和行为,面向对…...

Bun 1.0 正式发布,爆火的前端运行时,速度遥遥领先!

文章目录 一、包子1.0二、Bun 是一个一体化工具包为什么包子存在 二、Bun 是一个 JavaScript 运行时Node.js 兼容性速度TypeScript 和 JSX 支持ESM 和 CommonJS 兼容性网络 API热重载插件 一、包子1.0 Bun 1.0终于来了。 Bun 是一个快速、一体化的工具包,用于运行…...

getchar函数设置为非阻塞

一. 前言 我们在学习C语言的时候,getchar都是阻塞的,等待用户输入字符并且输入回车后才返回。但是有时候我们希望把getchar设置为非阻塞,或者说,当我们遇到getchar函数变成非阻塞的了,我们应该怎么解决这个问题&#x…...

【超算作业调度系统--LSF】

集群服务器--LSF作业调度系统使用 0 Introdutction1 命令1.1 bsub--作业提交命令1.1.1 $ bqueues --查看现有队列信息;1.1.2 $lsload --查看各节点运行情况1.1.3 $bhosts --查看各节点空闲情况1.1.4 $busers --查看用户信息1.2 bsub --提交作业1.2.1 bsub OMP_NUM_T…...

L1-011 A-B分数 20

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符…...

ESP32 Arduino核心开发终极指南:构建专业级物联网控制系统

ESP32 Arduino核心开发终极指南:构建专业级物联网控制系统 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 还在为物联网项目开发中的硬件兼容性、开发环境复杂…...

OpenClaw 2.7.5 Windows 一键部署教程|零配置开箱即用

前言 本地 AI 智能体技术持续迭代,私有化部署、数据安全可控、低门槛快速落地,已成为用户选型的核心考量。开源轻量化 AI 智能体 OpenClaw 2.7.5 版本完成全面优化升级,在环境适配性、服务稳定性与模型集成能力上均有显著提升,原…...

从QRegExp迁移到QRegularExpression避坑全记录:我们项目踩过的雷和最佳实践

从QRegExp迁移到QRegularExpression避坑全记录:我们项目踩过的雷和最佳实践 当团队决定将代码库从Qt4/Qt5升级到Qt6时,正则表达式模块的迁移往往是最容易被低估的挑战之一。我们项目组在重构过程中,曾因QRegExp到QRegularExpression的语法差异…...

OpenRGB终极指南:如何用开源软件统一管理所有RGB设备,告别多软件混乱

OpenRGB终极指南:如何用开源软件统一管理所有RGB设备,告别多软件混乱 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcPr…...

Ultimate ASI Loader 专业指南:深入解析游戏MOD加载器的完整配置与开发

Ultimate ASI Loader 专业指南:深入解析游戏MOD加载器的完整配置与开发 【免费下载链接】Ultimate-ASI-Loader The Ultimate ASI Loader is a proxy DLL that loads custom .asi libraries into any game process. 项目地址: https://gitcode.com/gh_mirrors/ul/U…...

OpenHarmony 实战——从零构建本地开发环境与SDK深度定制

1. 为什么需要定制OpenHarmony开发环境? 第一次接触OpenHarmony的开发者经常会问:为什么不能直接用官方提供的开发环境?这个问题我也曾经困惑过。经过多个项目的实战,我发现标准环境存在三个明显短板: 首先&#xff…...

别再傻傻用FFT了!用MATLAB的czt函数5分钟搞定频谱细化,精准定位98Hz和99Hz信号

别再被FFT分辨率坑了!MATLAB工程师的频谱细化实战指南 当你在分析一段包含98Hz和99Hz混合信号的频谱时,是否遇到过这样的尴尬:明明知道有两个频率成分存在,但FFT给出的结果却像被打了马赛克,两个峰值糊成一团&#xf…...

手把手教你为YOLOv8 TensorRT推理写一个C++接口:从DLL封装到QT界面调用

深度解析:构建高效YOLOv8 TensorRT推理C接口的工程实践 在工业视觉和边缘计算领域,将深度学习模型封装为可复用的软件组件已成为提升开发效率的关键。本文将以YOLOv8模型为例,深入探讨如何设计一个专业级的TensorRT推理C接口,重点…...

【亲测免费】【免费下载】 探索视觉新边界:RexVision视觉框架深度解析

探索视觉新边界:RexVision视觉框架深度解析 【下载地址】RexVision视觉框架下载仓库 本仓库提供了一个名为“RexVision视觉框架”的资源文件下载。该框架是一个视觉处理相关的工具或库,用户只需将文件放置在D盘的根目录下即可进行编译和使用 项目地址:…...

中兴光猫终极管理工具:一键开启工厂模式与永久Telnet完全指南

中兴光猫终极管理工具:一键开启工厂模式与永久Telnet完全指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu zteOnu是一款专为中兴光猫设备设计的开源管理工具&#xff0c…...