gin 官方文档的示例代码,变量命名为何要使用单个单词,看起来很不顺眼,是不是不符合代码规范。如`r := gin.Default()`

2020-06-24 00:43:24 +08:00
 EminemW
package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() // listen and serve on 0.0.0.0:8080
}

其中

r := gin.Default()

改成

router := gin.Default()

是不是更有助于理解呢

4292 次点击
所在节点    Go 编程语言
36 条回复
ifsclimbing
2020-06-24 00:44:48 +08:00
r 也能理解
poplar50
2020-06-24 00:47:09 +08:00
赞同楼主
Pythondr
2020-06-24 00:47:36 +08:00
Golang 提倡的,对于作用域小的局部变量提倡使用单个字符作为变量名
EminemW
2020-06-24 00:57:49 +08:00
@Pythondr #3 的确在 Golang 的官方教程中,也有大量出现单个字符做变量名
EminemW
2020-06-24 00:58:39 +08:00
@ifsclimbing #1
```
func router01() http.Handler {
e := gin.New()
e.Use(gin.Recovery())
e.GET("/", func(c *gin.Context) {
c.JSON(
http.StatusOK,
gin.H{
"code": http.StatusOK,
"error": "Welcome server 01",
},
)
})

return e
}
```
像这个 e:= gin.New() 呢
tonyaiken
2020-06-24 01:00:17 +08:00
不易阅读
iplayio2019
2020-06-24 01:10:21 +08:00
第一层循环用 v,第二层循环用 vv 。各种数据就是 data 。V.V
neoblackcap
2020-06-24 01:12:00 +08:00
golang 官方问题推崇的风格就是这样,循环啥的小作用域都用单变量,反正代表外部不用太关心这个变量。其实这里的 main 函数也是一样。你就是创建一个 router 然后注册对应的 handler 。这个事实也没什么关系,又不用传到别的地方去
cmdOptionKana
2020-06-24 01:36:23 +08:00
golang 保留了 C 语言的一些习惯,但基本上都有它的道理,没有大问题。
also24
2020-06-24 01:47:13 +08:00


临时变量 a b c
输入数据 d (data)
标记就用 f (flag)
全局变量 g (global) ( flask: hhh)
定义矩形 h w 或者 m n
长度肯定 l
遍历下标 i j k
字典遍历 k v
字符串 s
时间 t
三维数组 x y z

双指针就 l r 或 s e 或者 h l 或 h t ( left right / start end / high low / head tail )

多个临时变量就 a1 a2 a3 aa bb cc
debug 临时变量 wtf cnm mmp why
noqwerty
2020-06-24 02:09:26 +08:00
@also24 怪不得 debug 变量会起这些名字😂
lxml
2020-06-24 02:57:14 +08:00
看标准库就知道了,准确来说是,这个作用域比较短,十几行以内的用单字母缩写,因为没有什么歧义,作用域比较长的,跨几个函数或者单函数比较大的,还是会用全称。
mlboy
2020-06-24 05:57:08 +08:00
这正是符合规范,golang 就是提倡你的变量长度根据你的使用率决定,
Weny
2020-06-24 06:20:04 +08:00
一开始确实会有一些不习惯 后面就是一直缩写一直爽 hhh
chotow
2020-06-24 07:03:16 +08:00
@EminemW #5 e 是 engine 的首字母
mxalbert1996
2020-06-24 08:17:24 +08:00
楼主先区分一下单词和字母。。。
David1119
2020-06-24 08:23:00 +08:00
@also24 debug 亮了,笑出声~
dog82
2020-06-24 08:29:53 +08:00
i - index / iterator
r - result / router
l - list
a - array

ret- return
……
pkaq
2020-06-24 08:31:39 +08:00
楼主先区分一下单词和字母。。。
kaiki
2020-06-24 08:41:02 +08:00
不是拼音八级都看不懂你的代码.jpg

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX