go语言有缩进吗


这篇文章主要介绍“go语言有缩进吗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“go语言有缩进吗”文章能帮助大家解决问题。 go语言有缩进。在go语言中,缩进直接使用gofmt工具格式化即可(gofmt使用tab进行缩进);gofmt工具会以标准样式的缩进和垂直对齐方式对源代码进行格式化,甚至必要情况下注释也会重新格式化。go语言的代码风格(1)缩进和折行缩进直接使用gofmt工具格式化即可(gofmt是使用tab缩进的)。gofmt该工具会以标准样式的缩进和垂直对齐方式对源代码进行格式化,甚至必要情况下注释也会重新格式化。折行方面,一行最长不超过120个字符,超过的请使用换行展示,尽量保持格式优雅我们使用GoLand开发工具,直接使用快捷键:Ctrl+Alt+L即可。(2)语句的结尾Go语言中是不需要类似于Java需要分号结尾,默认一行就是一条数据。如果你打算将多个语句写在同一行,它们则必须使用。(3)括号和空格括号和空格方面,也可以直接使用gofmt 工具格式化(go会强制左大括号不换行,换行会报语法错误),所有的运算符和操作数之间要留空格。

//正确的方式
ifa>0{

}
//错误的方式
ifa>0//a,>,0之间应该使用空格
{//左大括号不可以换行,会报语法错误
	
}

(4)import规范import在多行的情况下,goimports会自动帮你格式化,如果你在一个文件里面引入了一个package,建议采用如下格式:

import{
	"fmt"
}

如果你的包引入了三种类型的包,标准库包,程序内部包,第三方包,建议采用如下方式进行组织你的包

inport{
	"encoding/json"
	"strings"
	
	"myproject/models"
	"myproject/controller"
	
	"github.com/astaxie/beego"
}

有顺序的引入包,不同的类型采用空格分隔,第一种实际准库,第二是项目包,第三是第三方包。【相关推荐:Go视频教程】在项目中不要使用相对路径引入包(5)错误处理错误处理的原则就是不能丢弃任何有返回err的调用,不要使用_丢弃,必须全部处理。接收到错误,要么返回err,或者使用log记录下来尽早return:一旦有错误发生,马上返回尽量不使用panic,除非你知道你在做什么错误描述如果是英文必须为小写,不需要标点结尾采用独立的错误流进行处理

//错误写法
iferr!=nil{
	//errorhanding
}else{
	//normalcode
}

//正确写法
iferr!=nil{
	//errorhanding
	return//orcontinue,etc.
}
//normalcode

(6)测试单元测试文件命名规范为 example_test.go测试用例的函数名称都必须以Test每个重要的函数都要首先编写测试用例,测试用例和正规代码一起提交方便进行回归测试go语言的gofmt命令gofmt是一个单独的命令,用来格式化Go的源代码。它用制表符(tab)进行缩进,空格进行对齐。对齐假定编辑器使用的是等宽字体。如果没有显式指定路径,它将处理标准输入;给定一个文件,它将处理该文件;给定一个文件夹,他将递归处理该文件夹下的所有.go文件(隐藏文件除外)。默认情况下,gofmt会将重新格式化好的代码打印至标准输出(而不是直接更新源文件)。用法如下:

gofmt[flags][path...]

flags如下:-d 重新格式化后的代码不再打印至标准输出。如果文件代码格式与gofmt不一致,打印区别至标准输出(该标识类似git的diff命令)。-e 打印所有的错误(包括假的)。-l 重新格式化后的代码不再打印至标准输出。如果文件代码格式与gofmt不一致,打印该文件名至标准输出。-r rule 重新格式化源文件前应用指定的重写规则。-s 在应用规则后(如果有的话),尝试简化代码。-w 重新格式化后的代码不再打印至标准输出。如果文件代码格式与gofmt不一致,使用gofmt的版本进行重写。重写过程中如果出现错误,原始文件将使用自动备份进行还原。调试支持:-cpuprofile filename 将cpuprofile写入到指定的文件。注意:-r标识指定的重写规则必须是一个字符串形式:pattern -> replacementpattern和replacement部分必须是一个有效的Go表达式。在pattern中,单字符小写标识符用作匹配任意子表达式的通配符,这些表达式将替换为replacement中相同的标识符。当gofmt从标准输入读取时,即接受一个完整的Go程序,也可以是一个程序片段。程序片段必须是语法上有效的声明列表,语句列表或表达式。格式化这种片段时,gofmt会保留前导缩进和前后的空格,以便Go程序的各个部分可以通过gofmt来格式化。示例假设源文件(hello.go)内容如下:

packagemain

import"fmt"

funcmain(){

x:=2
y:=3//该行未对齐

str:="HelloGolang~"
vargreetingstring

greeting=(str)//本行含有不必要的括号

fmt.Println(greeting)
fmt.Println("x*y=",((x)*y))//本行含有不必要的括号

s:=[]int{1,3,5,6,7}//切片

start:=2

sub:=s[start:len(s)]//本行可以优化切片s上界

fmt.Println(s)
fmt.Println(sub)
}

1.检查文件中不必要的括号(如果有,则输出文件名):

gofmt-r'(a)->a'-l*.go

将会输出hello.go2.移除括号:

gofmt-r'(a)->a'-w*.go

源文件将变成如下格式:

packagemain

import"fmt"

funcmain(){

x:=2
y:=3//该行未对齐

str:="HelloGol免费云主机域名ang~"
vargreetingstring

greeting=str//本行含有不必要的括号

fmt.Println(greeting)
fmt.Println("x*y=",x*y)//本行含有不必要的括号

s:=[]int{1,3,5,6,7}//切片

start:=2

sub:=s[start:len(s)]//本行可以优化切片s上界

fmt.Println(s)
fmt.Println(sub)
}

注意看带注释的行发生的变化。3.当前目录下,从显式切片上界转换为隐式切片上界:

gofmt-r'[:len()]->[:]'-w./

源文件第22行将变成如下:

sub:=s[start:]//本行可以优化切片上限

代码简化使用-s调用gofmt时,将尽可能进行以下转换:以下数组,切片或映射的复合字面量形式:将被简化为:以下切片表达式形式:将被简化为:以下range形式:将被简化为:以下range形式:将被简化为:注意:这些改变可能与早期版本的Go不兼容。另外,官方文档中指出:-r标识性能有点慢;-w如果失败,还原后的源文件可能会丢失某些文件属性。关于“go语言有缩进吗”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: Vue3如何用CompositionAPI优化代码量

这篇文章主要介绍了Vue3如何用CompositionAPI优化代码量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3如何用CompositionAPI优化代码量文章都会有所收获,下面我们一起来看看吧。我们先来看看组件的整体…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/25 10:21
Next 02/25 10:21

相关推荐