Golang Go语言 变量命名请教
Golang Go语言 变量命名请教
接口 结构体 和 对象 都是一个东西
譬如
authinterface
authstruct
和 auth
一般, 如果只有一个方法的接口可以命名为 auther 这个我知道.
但实际上 并不只有一个方法.
另外 一般 还有譬如 u := user{}
但是如果一个函数比较大 除了 user 之外, 还有其他 u 开头的结构体…
一般大家如何处理这种情况.
我目前是将类型放到变量后面.
结构体不添加任何描述,接口添加 Ifc 后缀
更多关于Golang Go语言 变量命名请教的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
没有看懂想要问的是啥。接口可以嵌套。这些可以自由组合。
type Auth interface
type XXAuth struct
auth := XXAuth{}
<br>type IFoo interface {}<br>type Foo struct {}<br>var foo Foo<br>
我觉得“I”大法蛮好的!
楼主要么再组织一下语言?
这一段文字,从头到尾没看懂
一楼四楼看懂了.
大概是这个意思.<br>type authInterface interface {<br>}<br><br>type authStruct struct {<br>}<br><br>var authS authStruct = authStruct{}<br>var authI authInterface = authS<br>
我的问题是 这些接口结构体和指向接口结构体的变量如何命名?
大佬想法和我差不多.
但是如果接口定义成 私有的就麻烦了.
在 go 里面,interface 才是面向对象里的“对象”
感觉楼主的问题 Java 写多了就信手拈来了
虽然不是完全 Get 到了 LZ 的点,但是也尝试回答一下
比如接口可以尝试叫做 Auther,那么对应的结构体可以叫做 UserAuth,OpenAPIAuth (这个需要看情况,一般情况这不一定是最佳实践)。变量名则可以是 userAuth,openapiAuth 。当然变量名命名在各种语言都一样,以标记为主,能够直观表达即可,叫做 auth,只要大家理解也无不可。即便循环里大家常用的 i,j,k,约定俗称也就如此用了。
另外关于接口定义的私有化问题多少有点暧昧,一般这种情况下可能是无需定义接口或者接口定义存疑,不如重新思考是否确实需要接口。另外是之前提到的未必最佳实践是指的下面一种关于 Java-esque 的写法的问题就是下面的一种情况:
type IFoo interface{
…
}
type Foo struct{
…
}
这是一种非常 Java-Style 的写法,实际上 Go 中的最佳实现是根据使用者需求定义最小化接口。往往 Javaer 的写法是在结构体旁边声明一个非常庞大的接口,这个结构体是完全实现了这个接口的。
转换成具体的例子可以这样理解:
// 定义时
type Animal interface {
Name() string
Speaks() string
}
// implementation of Animal
type Dog struct{}
func (a Dog) Name() string {
return “Bobby”
}
func (a Dog) Speaks() string {
return “woof”
}
// 使用时
func Perform(a animals.Animal) string {
return a.Speaks()
}
编程思想没转变
谢谢大佬.
大佬还有其他最佳实践分享嘛… 最近写 go 很混乱…
原生的 go 本身也是用对于 map 相关的都是 mapInterface 没必要太在意
因为 go 的风格是把接口放在调用侧而非实现侧的,所以多数情况接口和实现是在不同 package 中,可以直接用相同的名字
多个方法如果紧密相关可以放一起,起一个整体名字,如果并没有太大相关,可以分开多个接口,go proverb 如是说:
“The bigger the interface, the weaker the abstraction.”
在Go语言中,变量命名是一个基础且重要的环节,它不仅关乎代码的可读性,还影响团队协作和代码维护的效率。以下是一些关于Go语言变量命名的专业建议:
-
简洁明了:变量名应尽可能简短,但要能准确描述变量的用途。例如,使用
count
而非cnt
,除非在上下文非常明确的情况下。 -
驼峰命名:Go语言推荐使用驼峰命名法(CamelCase),即变量名中的单词首字母大写,其余字母小写,单词之间不加空格或分隔符。例如,
maxConnectionCount
。 -
避免使用保留字:不要使用Go语言的保留字(如
int
、float
等)作为变量名,以免引起混淆或编译错误。 -
有意义的命名:变量名应具有实际意义,能够反映其存储数据的性质或用途。例如,使用
totalAmount
而非a
或total
。 -
一致性:在团队项目中,保持变量命名风格的一致性至关重要。可以制定一套命名规范,并要求所有成员遵守。
-
避免使用数字开头:虽然Go语言允许变量名以数字开头,但出于可读性和规范性的考虑,应避免这种做法。
综上所述,良好的变量命名习惯能够显著提升代码的可读性和可维护性。在编写Go语言代码时,请务必重视变量命名,并遵循上述建议。这将有助于你写出更加优雅、专业的代码。