Go语言入门之基础语法

Go语言入门之基础语法

1.简单语法概述

  • 行分隔符:

    一行代表一个语句结束,无需写分号。将多个语句写在一行可以用分号分隔,但是不推荐

  • 注释:

    // 或者/* */

  • 标识符:

    用来命名变量类型等程序实体。

    支持大小写字母、数字、下划线,第一个字符必须是字母或下划线

    不支持数字开头,自定义go语言中的关键词和运算符作为标识符

  • 字符串连接:

    通过+号实现

  • 空格:

    尽量多使用空格保证代码的美观性和可读性

2.关键字与标识符

  • 25个关键字或保留字:
    在这里插入图片描述

  • 36个预定义标识符:
    在这里插入图片描述

3.运算符

(1)算数运算符

就是简单的+-*/

(2)关系运算符

  • ==:两边相等则返回 true,否则false
  • !=:两边不相等则返回 true,否则false
  • >:左大于右则返回 true,否则false
  • <:右大于左则返回 true,否则false
  • >=:右大于等于左则返回 true,否则false
  • <=:做大于等于右则返回 true,否则false

(3)逻辑运算符

  • &&:AND运算,两边都是 true 则为 true 否则为 false
  • ||:OR运算,两边只要有一个true 则为 true 否则为 false
  • !: NOT运算,取反,条件为true 则为 false`

(4)位运算符

  • &,按位与,二进制都为1则为1,否则为0
  • |,按位或,二进制位有一个为 1 则为 1 否则为 0
  • ^,按位异或,二进制位不一样就为 1 否则为 0
  • <<,左移,左移 n 为就是乘以 2 的 n 次方
  • >>,右移,右移n位就是除以2的n次方

4.格式化字符串

Go语言中使用 fmt.Sprintffmt.Printf 格式化字符串并赋值给新串

  • Sprintf :根据格式化参数生成格式化的字符串并返回该字符串。
  • Printf :根据格式化参数生成格式化的字符串并写入标准输出。

区别实例:

var age = 17
var name = "go"
var url = "名字是%s&年龄是%d"
var target_url = fmt.Sprintf(url,name,age)  // 生成一个新的字符串
fmt.Println(target_url)                     // 输出新串fmt.Printf(url,name,age)   // 直接输出

5.常见的转义字符

\n:     // 换行符
\r:     // 回车符
\t:     // tab 键
\u:     // Unicode 字符
\U:     // Unicode 字符
\\:     // 反斜杠自身
``// 内容原样输出

6.变化多端的占位符

(1)普通占位符

%v        // 相应值的默认格式      
%+v       // 打印结构体时会添加字段名     
%#v       // 打印结构体时会添加字段名和结构体名 
%T        // 打印出该数据的数据类型       	
%%        // 打印出一个百分号

(2)布尔占位符

%t      // 布尔占位符,只能打印true和false

(3)整型占位符

%d      // 十进制输出
%5d     // 设置宽度,效果类似于空格,前空5格为5d,后空为-5d,空换位0为05d// 例子
fmt.Printf("|%5d|%-5d|%05d|", 1, 1, 1)  // 输入
|    1|1    |00001|                     // 输出%b      // 二进制输出                             
%o      // 八进制输出 %#o输出的是以0开头的                            
%x      // 十六进制输出,字母形式为小写 a-f     %#x输出以0x开头     
%X      // 十六进制输出,字母形式为大写 A-F     %#X输出以0X开头 

(4)浮点型占位符

%b        // 浮点数转化为 2 的幂的科学计数法 输入 1.23,输出 5539427541665710p-52
%e        // 科学计数法           输入1.23          输出 1.230000e+00
%E        // 科学计数法           输入1.23          输出 1.230000E+00     
%f        // 浮点数输出(保留6位)  输入1.23          输出 1.230000
%.1f      // 保留1位小数四舍五入   输入1.234         输出  1.2
%8f       // 保留8个数           输入1.123456789   输出  1.123457
%4.3f     // 3精度,保留5个数     输入12.12345      输出  12.123
%5.2f     // 2精度,保留4个数     输入12.1234       输出  12.12
%5.2f     // 2精度,保留6个数     输入1234.1234     输出  1234.12%g      // 去掉小数后面的0              输入  12.1200    输出  12.12
%.3g    // 保留3位数后去小数后0          输入  12.1200    输出  12.12
%.5g    // 保留5位数后去小数后0          输入  12.300     输出  12.3%G      // 官网说和g有区别,但是测试结果相同,应该适用于特殊情况浮点型占位符

(5)字符占位符

%c      // 相应Unicode码点所表示的字符
%q      // 输出有单引号的相应Unicode码点所表示的字符
%U      // 输出格式为 U+hhhh 的字符串  %#U时多加了一个对应的字符  例:U+7583 '疃'

(6)字符串与字节切片

%s      // 输出字符串表示(string类型或[]byte)// 截断字符串  fmt.Printf("%.3s", "abcde")// 输出abc%q      // 安全转义,和上面的一样,就多了个双引号// 例子输入fmt.Printf("%s %q \n", "你", []byte("好"))// 输出"好" %x      // 转化为十六进制输出,小写字母       
%X      // 转化为十六进制输出,大写字母

(7) 指针占位符

%p         // 十六进制表示,%p 带 0x, %#p 不带// 输入a := 1b := []int{1, 2}fmt.Printf("%p|%#p", &a, b)
// 输出
0xc00000a0c8|c00000a100

(8) 其他占位符

+         //打印数值的正负号,默认输出 ASCII 编码字符,非 ASCII 编码会转成 Unicode 编码输出// 输入fmt.Printf("%+d|%+q", -1, "你好")// 输出-1|"\u4f60\u597d"-          // 会在右侧填充空格,上面已展示过
#          // 上面用过很多次,%#q 可以打印出反引号包裹的字符串
空格        // 输出时可以留出空位 5d%等于5个空格加d

占位符不用全看,看几个重要的就行,按需取用,都是来自网上整理,如有问题请留言。

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

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

相关文章

Vue基础--v-model/v-for/事件属性/侦听器

目录 一 v-model表单元素 1.1 v-model绑定文本域的value 1.1.1 lazy属性&#xff1a;光标离开再发请求 1.1.2 number属性&#xff1a;如果能转成number就会转成numer类型 1.1.3 trim属性&#xff1a;去文本域输入的前后空格 1.2v-model绑定单选checkbox 1.3代码展示 二 …

【AIGC】一、本地docker启动私有大模型

本地docker启动私有大模型 一、最终效果中英文对话生成代码 二、资源配置三、搭建步骤启动docker容器登录页面首次登录请注册登录后的效果 配置模型尝试使用选择模型选项下载模型选择适合的模型开始下载 试用效果返回首页选择模型中英文对话生成代码 四、附录资源监控 五、参考…

Oracle基础以及一些‘方言’(二)

1、Oracle的查询语法结构 Oracle 的单表查询的语法结构&#xff1a; SELECT 1 FROM 2 WHERE 3 GROUP BY 4 HAVING 5 ORDER BY 6 其每个关键词的功能与MySQL中的功能已知&#xff0c;不过分页查询的关键词 limit 并不在Oracle的语法结构中。伪列&#xff1a; 在 Oracle 的表的使…

在Windows中使用开源高性能编辑器Zed(持续更新)

简介 “Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. It’s also open source.” “Zed是一款高性能的支持多人协作的代码编辑器&#xff0c;由Atom和Tree-sitter的创建者开发。它也是开源的。” Zed主打“高性能”&…

Ensp配置防火墙的web界面

Ensp配置防火墙的web界面 准备工作新建网卡配置网卡 启动防火墙配置防火墙注意事项和错误如果云里面没有网卡选项防火墙启动不了没有web界面启动不了没有web界面 准备工作 新建网卡 我用的是win10系统&#xff0c;新建网卡 先右键管理 再点击设备管理器 --- 再网络适配器 接…

Day62 单调栈part01

LC739每日温度(未掌握) 暴力解法&#xff1a;两层for循环&#xff0c;时间复杂度O(n^2)&#xff0c;会超时未掌握原因分析&#xff1a;只想到了从栈顶到栈底是递减的情况&#xff0c;忽略了从栈顶到栈底是递增的情况 因为需要找到一个元素右边第一个更大元素&#xff0c;只有…

机器视觉理论入门

文章目录 前言一、马尔视觉理论二、图形与图像三、图像基础名词总结 前言 Marr的视觉计算理论立足于计算机科学&#xff0c;系统地概括了心理物理学、神经生理学、临床神经病理学等方面已取得的所有重要成果&#xff0c;是迄今为止最为系统的视觉理论。Marr 的视觉计算理论虽然…

同步时钟系统支持多种校时方式

在当今数字化、信息化高速发展的时代&#xff0c;时间的准确性和同步性变得至关重要。无论是金融交易、通信网络、交通运输&#xff0c;还是工业生产、科学研究等领域&#xff0c;都离不开一个精确且同步的时钟系统。而同步时钟系统之所以能够在众多领域发挥关键作用&#xff0…

阈值分割后配合Connection算子和箭头工具快速知道区域的ID并选择指定区域

代码 dev_close_window () read_image (Image, E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/标定相机找圆心和焊头修正相机找圆心之算法软件/标定相机找圆心和焊头修正相机找圆心之算法软件/03 标定相机找圆心/S2/1号机/1.bmp) get_image_size …

【windows】安装抓包工具Burp Suite 2024激活汉化

前言 在项目即将上线阶段&#xff0c;迈入生产环境之际&#xff0c;确保其安全性成为我们不可忽视的首要任务。为筑起一道坚不可摧的安全防线&#xff0c;我们借助业界公认的网络安全利器——Burp Suite&#xff0c;我们将展开一场全面的安全测试&#xff0c;旨在探查并消除任…

QT学习日记一

创建QT文件步骤 这是创建之后widget.cpp和widget.h文件的具体代码解释&#xff0c;也是主要操作的文件&#xff0c;其中main.cpp不用操作&#xff0c;ui则是图形化操作界面&#xff0c;综合使用时&#xff0c;添加一个元件要注意重编名和编译一下&#xff0c;才能在widget这类…

妙笔生词智能写歌词软件:创新助力还是艺术之殇?

在音乐创作日益普及和多样化的当下&#xff0c;各种辅助工具层出不穷&#xff0c;妙笔生词智能写歌词软件便是其中之一。那么&#xff0c;它到底表现如何呢&#xff1f; 妙笔生词智能写歌词软件&#xff08;veve522&#xff09;的突出优点在于其便捷性和高效性。对于那些灵感稍…

【福利】代码公开!咸鱼之王自动答题脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 微信或QQ打开咸鱼之王小程序&#xff0c;进入答题界面&#xff0c;运行main.py。期间不要动鼠标。 可自行更改代码来适配自己的需求~ 可以按照示例图片…

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)

题目描述 一.原本暴力算法 最初的想法是&#xff1a;先比较gas数组和cost数组的大小&#xff0c;找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点&#xff0c;就不能作为起始点)。当找到过后&#xff0c;再去依次顺序跑一圈&#xff0c;如果剩余的油为负数…

MATLAB备赛资源库(1)建模指令

一、介绍 MATLAB&#xff08;Matrix Laboratory&#xff09;是一种强大的数值计算环境和编程语言&#xff0c;特别设计用于科学计算、数据分析和工程应用。 二、使用 数学建模使用MATLAB通常涉及以下几个方面&#xff1a; 1. **数据处理与预处理**&#xff1a; - 导入和处理…

OpenAI与Thrive Global推出Thrive AI Health:AI驱动的健康教练应用

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

算法金 | 12 个最佳 Python 代码片段,帮我完成工作自动化,香~

​大侠幸会幸会&#xff0c;我是日更万日 算法金&#xff1b;0 基础跨行转算法&#xff0c;国内外多个算法比赛 Top&#xff1b;放弃 BAT Offer&#xff0c;成功上岸 AI 研究院 Leader&#xff1b; Python是一种多功能的编程语言&#xff0c;它提供了各种功能和库来有效地自动化…

更深入了解汽车与航空电子等安全关键型应用的IP核考量因素

作者&#xff1a;Philipp Jacobsohn&#xff0c;SmartDV高级应用工程师 中国已经连续十多年成为全球第一大汽车产销国&#xff0c;智能化也成为了汽车行业发展的一个重要方向&#xff0c;同时越来越多的制造商正在考虑进入无人机和飞行汽车等低空设备&#xff0c;而所有的这些…

语义言语流畅性的功能连接和有效连接

摘要 语义言语流畅性(SVF)受损在多种神经系统疾病中都存在。虽然已经报道了SVF相关区域的激活情况&#xff0c;但这些区域如何相互连接以及它们在脑网络中的功能作用仍存在分歧。本研究使用功能磁共振成像评估了健康被试SVF静态和动态功能连接(FC)以及有效连接。观察到额下回(…

Filter 过滤器

1. 什么是过滤器 拦截不符合过滤要求的请求&#xff0c;使其无法到达目的地。 执行过程 主要用在&#xff1a;统一认证&#xff0c;统一编码设置 2. 创建过滤器 两种方式&#xff1a;与 servlet 雷同 ① 注解方式 &#xff08;/* 拦截所有请求&#xff09; WebFilter(fil…