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

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

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

相关文章

【Redis】Redis 的学习教程(十一)之使用 Redis 实现分布式锁

1. 分布式锁概念 在多线程环境下,为了保证数据的线程安全,锁保证同一时刻,只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。 synchronized 锁是 Java 提供的一种内置锁,在单个 …

快速用Python进行数据分析技巧详解

概要 一些小提示和小技巧可能是非常有用的,特别是在编程领域。有时候使用一点点黑客技术,既可以节省时间,还可能挽救“生命”。 一个小小的快捷方式或附加组件有时真是天赐之物,并且可以成为真正的生产力助推器。所以&#xff0…

leetcode543 二叉树的直径

题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 输入:root [1,2,3,4,5] 输出&#xff1…

全国职业技能大赛云计算--高职组赛题卷⑤(容器云)

全国职业技能大赛云计算--高职组赛题卷⑤(容器云) 第二场次题目:容器云平台部署与运维任务2 基于容器的web应用系统部署任务(15分)任务3 基于容器的持续集成部署任务(15分)任务4 Kubernetes容器…

web:[HCTF 2018]WarmUp

题目 点进页面&#xff0c;页面只有一张滑稽脸&#xff0c;没有其他的提示信息 查看网页源代码&#xff0c;发现source.php&#xff0c;尝试访问一下 跳转至该页面&#xff0c;页面显示为一段php代码&#xff0c;需要进行代码审计 <?phphighlight_file(__FILE__);class emm…

【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案

1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18 而数据库中原始数据如下,并没有到下午5点…

flink集群与资源@k8s源码分析-回顾

本章是分析系列最后一章,作为回顾,以运行架构图串联起所有分析场景 1 启动集群,部署集群(提交k8s),新建作业管理器组件 2 构建和启动flink master组件 3 提交作业,N/A

多线程的学习上篇

座右铭: 天行健&#xff0c;君子以自强不息;地势坤&#xff0c;君子以厚德载物. 引入进程这个概念的目的 引入进程这个概念,最主要的目的,是为了解决“并发编程"这样的问题. 这是因为CPU进入了多核心的时代 要想进一步提高程序的执行速度,就需要充分的利用CPU 的多核资源…

滑动时间窗口的思想和实现,环形数组,golang

固定时间窗口 在开发限流组件的时候&#xff0c;我们需要统计一个时间区间内的请求数&#xff0c;比如以分钟为单位。所谓固定时间窗口&#xff0c;就是根据时间函数得到当前请求落在哪个分钟之内&#xff0c;我们在统计的时候只关注当前分钟之内的数量&#xff0c;即 [0s, 60…

【大数据之Kafka】十六、Kafka集成外部系统之集成Flume

Flume 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者&#xff0c;也可以用于 Kafka 的消费者。 Flume安装和部署&#xff1a;https://blog.csdn.net/qq_18625571/article/details/131678589?spm1001.2014.3001.5501 1 Flume生产者 &#xff08;1&#xff09…

帆软BI开发-Day2-趋势图的多种变形

前言&#xff1a; 在BI数据展示中&#xff0c;条形图、趋势图无疑是使用场景非常多的两种图形。与条形图不同的是&#xff0c;趋势图更能反馈出一定的客观规律和未来的趋势走向&#xff0c;因此用于作为预警和判异的业务场景&#xff0c;但实际业务场景的趋势图可没你想的那么简…

华为HCIA(三)

链路本地地址接口标识64bit 当STP端口到了Forwarding状态后&#xff0c;会转发流量&#xff0c;也处理报文 在TCP/IP模型中&#xff0c;会话层&#xff0c;表示层和应用层&#xff0c;都规划成了应用层 路由表包含目的地址和掩码&#xff0c;优先级&#xff0c;cost,下一跳和…

laravel框架 - 事件与监听器

一&#xff0c;绑定事件与监听器 在app\Providers下的EventServiceProvider.php中添加我们定义的事件与监听器 protected $listen [Registered::class > [SendEmailVerificationNotification::class,],App\ebvent\RegisterMessage>[//事件App\listeners\SendMessage//监…

高云FPGA系列教程(10):letter-shell移植

文章目录 letter-shell简介letter-shell源码获取letter-shell移植函数和变量应用示例 本文是高云FPGA系列教程的第10篇文章。 shell&#xff0c;中文是外壳的意思&#xff0c;就是操作系统的外壳。通过shell命令可以操作和控制操作系统&#xff0c;比如Linux中的Shell命令就包括…

QT--day5

注册 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QPushButton> #include<QLineEdit> #include<QLabel> #include <QMessageBox> #include<QString> #include<QSqlDatabase> …

CAN总线物理层

本文的目的并不是为了介绍或普及CAN总线相关知识,而是为了了解CAN总线,进而为CAN通信一致性测试做知识储备。 CAN,控制器局域网,全称:Controller Area Network。1986年,由德国Bosch公司为汽车开发的网络技术,主要用于汽车的监测与控制,目的为适应汽车“减少线束的数量…

1787_函数指针的使用

全部学习汇总&#xff1a;GitHub - GreyZhang/c_basic: little bits of c. 前阵子似乎写了不少错代码&#xff0c;因为对函数指针的理解还不够。今天晚上似乎总算是梳理出了一点眉目&#xff0c;在先前自己写过的代码工程中做一下测试。 先前实现过一个归并排序算法&#xff0c…

1999-2018年地级市不同所有制成分工业总产值数据

1999-2018年地级市不同所有制成分工业总产值数据 1、时间&#xff1a;1999-2018年 2、范围&#xff1a;地级市 3、指标&#xff1a;行政区划代码、城市、年份、规模以上工业企业数_全市_个、规模以上工业企业数_市辖区_个、规模以上内资企业数_全市_个、规模以上内资企业数_…

【AI视野·今日CV 计算机视觉论文速览 第250期】Wed, 20 Sep 2023

AI视野今日CS.CV 计算机视觉论文速览 Wed, 20 Sep 2023 Totally 95 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computer Vision Papers PanopticNeRF-360: Panoramic 3D-to-2D Label Transfer in Urban Scenes Authors Xiao Fu, Shangzhan Zhang, Tianrun Chen…

SecureCRT SSH与FTP连接中文乱码

1、首先要保证服务端环境变量是UTF-8编码的 LANG”zh_CN.UTF-8″ 2、会话里面配置好字符编码&#xff1a;UTF-8 SSH会话的窗口就可以正常显示中文了&#xff0c;效果如下 3、打开FTP或者SFTP时进行文件传输时&#xff0c;列表窗口里面还是乱码&#xff0c;需要把SecureCRT安…