Golang Go语言 变量命名请教

Golang Go语言 变量命名请教
接口 结构体 和 对象 都是一个东西

譬如
authinterface
authstruct
和 auth


一般, 如果只有一个方法的接口可以命名为 auther 这个我知道.

但实际上 并不只有一个方法.

另外 一般 还有譬如 u := user{}
但是如果一个函数比较大 除了 user 之外, 还有其他 u 开头的结构体…


一般大家如何处理这种情况.

我目前是将类型放到变量后面.

17 回复

结构体不添加任何描述,接口添加 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>

我的问题是 这些接口结构体和指向接口结构体的变量如何命名?

type AuthInterface interface {
}

type Auth struct {
}

auth := Auth {}
var authInterface AuthInterface = auth

大佬想法和我差不多.
但是如果接口定义成 私有的就麻烦了.

在 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语言变量命名的专业建议:

  1. 简洁明了:变量名应尽可能简短,但要能准确描述变量的用途。例如,使用count而非cnt,除非在上下文非常明确的情况下。

  2. 驼峰命名:Go语言推荐使用驼峰命名法(CamelCase),即变量名中的单词首字母大写,其余字母小写,单词之间不加空格或分隔符。例如,maxConnectionCount

  3. 避免使用保留字:不要使用Go语言的保留字(如intfloat等)作为变量名,以免引起混淆或编译错误。

  4. 有意义的命名:变量名应具有实际意义,能够反映其存储数据的性质或用途。例如,使用totalAmount而非atotal

  5. 一致性:在团队项目中,保持变量命名风格的一致性至关重要。可以制定一套命名规范,并要求所有成员遵守。

  6. 避免使用数字开头:虽然Go语言允许变量名以数字开头,但出于可读性和规范性的考虑,应避免这种做法。

综上所述,良好的变量命名习惯能够显著提升代码的可读性和可维护性。在编写Go语言代码时,请务必重视变量命名,并遵循上述建议。这将有助于你写出更加优雅、专业的代码。

回到顶部