Golang 从菜鸟到大咖的必经之路_GO 语言的转义字符、注释、规范和代码风格要求

news2024/9/20 20:37:14

目录

一、GO 语言转义字符

A.Golang 常用的转义字符(escape char):

B.课程练习

二、Go 语言注释: 

A.注释(Comment):

B.Go 语言中的注释类型:

C.注释不会被编译

D.shift+tab

三、规范的代码风格要求:

A.正确的注释和注释风格:

B.正确的缩进和空白:

C.运算符两边习惯性各加一个空格。

D.代码风格


一、GO 语言转义字符

A.Golang 常用的转义字符(escape char):

1. \t    一个制表位,实现对齐的功能
2. \n    换行符
3. \    一个\
4. "    一个"
5. \r    一个回车 ,fmt.Println("天龙八部雪山废库\r张飞")

package main

import "fmt" // fmt 包中主要提供格式化,输出,输入函数。

func main() {
	// 演示转义字符的使用

	fmt.Println("tom\t jack")

	fmt.Println("hello\n world")

	fmt.Println("F:\\Program_KF\\Goland_Code\\Projcet_02")

	fmt.Println("tom说\"i love you\"")

	// 回车,表示从当前行的最前面开始输出,覆盖掉之前的内容

	fmt.Println("天龙八部雪山废库\r张飞")  //在这里输出的是张飞八部雪山废库
}

B.课程练习

package main

import "fmt" // fmt 包中主要提供格式化,输出,输入函数。

// 注意:低版本下,统一文件夹下不能有同名函数,不然会报错
// go 1.16版本之后就没有这个问题了

func main() {
	// 要求:请使用一句话输出语句,达到输入如下图形的效果

	fmt.Println("性别\t年龄\t籍贯\t地址\njohn\t20\t河北\t北京")
}

二、Go 语言注释: 

A.注释(Comment):

介绍:

  1. 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;
  2. 注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。

B.Go 语言中的注释类型:

  1. Go支持C语言风格的/**/块注释,也支持C++风格的//行注释。行注释更通用,块注释主要用于针对包的详细说明或者屏蔽大块的代码。
  • 行注释
  • 块注释

行注释:

  • 基本格式:// 注释文字

块注释(多行注释):

  • 基本格式:/* 注释文字 */
  • 应用实例

使用细节:

  1. 对于行注释和块注释,被注释的文字,不会被GO编译器执行。
  2. 块注释里面不允许有块注释嵌套

C.注释不会被编译

注释不会被编译,每一个包应该有相关注释。

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。如:

// 单行注释 
/*  
Author by w3cschoolW3Cschool教程  我是多行注释  
*/ 

D.shift+tab

表示可以将全部代码向左移动靠齐 

三、规范的代码风格要求:

A.正确的注释和注释风格:

  1. GO 官方推荐使用行注释来注释整个方法和语句
  2. 带看GO源码

B.正确的缩进和空白:

  1. 使用一次TAB操作,实现默认缩进,默认整体向右移动,时候用shift + tab 整体向左移
  2. 或者使用gofmt来进行格式化【演示】
# 输出格式化代码
gofmt xxxxx.go

# 格式化输出代码和代码(该指令可以将格式化后的内容重新写入到文件,当程序员重新打开该文件时,就会看到新的格式化后的文件)
gofmt -w xxxxx.go

C.运算符两边习惯性各加一个空格。

比如说:2 + 4 * 5

var num = 2 + 4 * 5

D.代码风格

  1. 设计者的思想,一个问题尽量只有一个解决方法(简称,Go作者,我就喜欢这样写,你们都得给我这样写,老子就是牛啊)
  2. 一行最好不要超过80个字符,超过的请使用换行展示,尽量保持格式优雅。
// 开发一个hello.go程序,可以输出 “hello,word !”

// 表示 hello.go 文件所在包是main, 在go中每个文件都必须归属于一个包
package main

// import :表示引入一个包
// import "fmt" :表示引入一个fmt 包,引入该包后,就可以使用fmt函数,比如说fmt.Println()

import "fmt"

// func main(){}
// func 是一个关键字,表示一个函数。
// main 是一个函数名,是一个主函数,即程序的入口

func main() {
	fmt.Println("hello,word!")
	// shift+alt+向下,可以快速复制当前行。
	fmt.Println("hello,word!")
	// 表示调用 fmt 包函数,Println 输出 hello,word!
	fmt.Println("hello,word!hello,word!hello,word!hello,word!hello,word!hello,word!",
		"hello,word!hello,word!hello,word!hello,word!hello,word!",
		"hello,word!hello,word!hello,word!hello,word!hello,word",
		"!hello,word!hello,word!hello,word!hello,word!hello,word!",
		"hello,word!hello,word!hello,word!hello,word!hello,word!",
		"hello,word!hello,word!hello,word!")
         //在这里使用换行的方式,使用双引号加上逗号连接句子或者字符串,最后打印出来的结果还是一整行
}

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

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

相关文章

聚焦儿童羽绒服产业,看用友YonSuite打造领先实践的数智创新小灯塔

有一种冷“是妈妈觉得你冷”。每每想起小时候,为了应对寒冷的冬季,都会“全副武装”,裹得厚厚的,里三层外三层。 放到如今,有了羽绒服的萌娃们,已不再像我们当年一样穿得厚厚的了。现在的年轻爸妈喜欢装扮…

Udev 为设备节点起别名

查看设备信息: 操作udev,可以使用udevadm命令,如果我们要查看/dev/sda 设备节点信息,我们可以使用下面命令: 命令:udevadm info -a --namesda rootubuntu:/sys/kernel/debug/usb# udevadm info -a --nam…

【C语言】文件操作(1)

文件操作一、关于文件的基础知识1.为什么要学习文件2.什么是文件3.文本文件与二进制文件二、文件的打开和关闭1. 文件指针2.文件的打开和关闭3.文件结尾三、文件的顺序读写1.fputc与fgetc2.fputs与fgets3.fprintf与fscanf4.fwrite与fread5.三个标准流一、关于文件的基础知识 1…

低代码平台的优缺点

全文 1518 字 阅读时间约 5 分钟 本文首发于码匠技术博客 目录 低代码平台的优点 低代码平台的缺点 写在最后 低代码工具大大减少了开发者需要编写的代码量,通过增加可复用代码和组件的数量来帮助企业适应发展需求,设计和部署自定义应用程序以紧跟市…

科研快报|二代加三代扩增子测序探究苏铁植物根部复杂微生物群落组成

背景介绍苏铁俗称铁树,是地球上现存最古老的活化石植物,也是种子植物中最原始的种群。我国是世界上苏铁植物资源最丰富的国家之一,本文对我国的特有种德保苏铁(Cycas debaoensis)和仙湖苏铁(Cycas fairylak…

【复习 自用】JavaScript知识汇总(基础版)

注:之前学过JavaScript,本贴仅用于复习(自用),建议没基础的朋友先学基础。会混入typescript! 更新中~~~~~~~~~~ 对象.属性和对象[‘属性’]的区别:总的来说没啥区别,但是, !&#…

办公必备的快捷键,轻松助你键步如飞

作为职场人,你不会只会用Ctrl C和Ctrl V吧?掌握更多的办公快捷键,可以大大提高工作效率!今天教大家几个好用的快捷键!现在收收藏起来吧!快捷键一:winL(锁屏) 电脑锁屏可以…

【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(功率表)】

目录 序言 🍍放置虚拟仪器仪表 🍉功率表 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0,打开如图所示的启动界面&#x…

opencv的图像基本操作_2

import cv2 #图像BGRimport numpy as npimport matplotlib.pyplot as plt #Matplotlib是RGB腐蚀操作kernel np.ones((3,3), np.uint8) #选择3*3卷积核,3*3括起来,(3,3)erosion cv2.erode(img, kernel, iterations 1) #erode腐蚀函数, iter…

【LeetCode】生命游戏 [M](矩阵)

289. 生命游戏 - 力扣(LeetCode) 一、题目 根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个…

2023年mybatis常见面试题10道

1. MyBatis是什么?Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生…

Hyper-V三种虚拟网络类型的理解

Windows 10除家庭版之外都内置了Hyper-V,但是Win10系统上Hyper-V虚拟网络的设置方法却与之前版本的Hyper-V有些不同,最近在折腾了无数遍之后,总算有些心得:先说说虚拟网络的三种类型。Hyper-v支持外部、内部、专用三种网络&#x…

蓝桥杯STM32G431RBT6学习——定时器中断

蓝桥杯STM32G431RBT6学习——定时器中断 前言 从网络上的资料来看,蓝桥杯嵌入式好像并不考外部中断(毕竟通常只是个按键应用),因此跳过进行定时器的学习。 STM32单片机的定时器通常分为高级定时器、通用定时器、基本定时器三种&…

111、【树与二叉树】leetcode ——669. 修剪二叉搜索树:递归法(C++版本)

题目描述 解题思路 本题的关键是用好递归这个结构,用好每次他向下的遍历和返回的值。每一次递归时,相当于解决与之前相同的问题,因此先按某一种类子问题进行讨论(仅有三个结点的满二叉树),当递归的方式向下…

二本学历5年经验的程序员,出去面试被碾压~

目录 1、从一个求职案例引入2 、学历差距:面试官的第一印象3、公司背景差距:你的人生名片4、技术差距:硬核能力的欠缺5、架构能力的差距6、面试结果的分析 这篇文章,聊一个很多人感兴趣的话题,小公司的Java工程师和大…

计网必会:HTPP详解、cookie、缓存

文章目录应用层协议Web和HTTPHTTP 概述采用非持续连接的HTTPRTT 往返时间的定义**三次握手过程**采用持续连接的HTTPHTTP到底采用哪个?HTTP 的报文格式请求报文功效格式响应报文状态码格式Cookie什么是cookieWeb缓存在学习的过程很多人都遇到了HTTP和Cookie&#xf…

【matplotlib】19.基本用法

#【matplotlib】19.基本用法 2021.1.19 画figure图基本方法。参考: https://m.runoob.com/matplotlib/matplotlib-pyplot.html https://mofanpy.com/tutorials/data-manipulation/plt/figure matplotlib 是python的画图包 19.1 基础使用 plot图,就是以…

JavaEE2-Spring核心与设计思想

目录 1.Spring是什么? 2.容器是什么? 3.IoC是什么? 3.1.传统程序开发 3.2.控制反转式程序开发 3.3.对比总结规律 4.理解Spring IoC 4.1.将对象(Bean)存入到容器(Spring); 4.2.从容器中取出对象。 5.DI概念说明 1.Spring…

LINUX---进程

目录相关概念1.什么是程序,什么是进程,有什么区别2.如何查看系统中有哪些进程3.进程标识符4.父进程,子进程5.C程序的存储空间是如何分配的创建进程函数forkvforkfork创建进程:vfork创建进程:进程退出正常退出:异常退出…

在XXX中找到了XXX的副本,但是当前代码与XXX中内置的版本不同【几种解决方案】

Microsoft VS警告类似如图所示: 然后发现编译编写好的代码无法打断点。定义的变量无法获取。 方案一: 把提示的该文件备份在其他文件夹一份,然后在项目中删除该文件。再把备份的文件放到该项目中。然后再编译。 方案二(参考该博客…