关于go的一点小小的吐槽

最近在学go,发现一些很心智负担的写法,看几个例子:

  1. 变量的声明

     var a int
     var a = 10
     a := 10
    
     var a, b int
     var a, b = 10
     a, b := 10, 11
     var (
         a int 
         b = 10
     )

    搞这么多,累不累啊。

  2. 参数

    func test1(x int, y, z string, a ...int) {}
  3. 返回值

    func test2() x int {}
    func test3() (x int, y int) {}
  4. slice, map 初始化

    slice1 := []int{}
    slice2 := []int{1, 2}
    slice3 := make([]int)
    map1 := map[string]int{}
    map2 := map[string]int{"a":1, "b":2}
    map3 := make(map[string]int)
  5. 初始化结构体

    p1 := person{}
    p2 := &person{}
    p3 := &person{"name":"xxx", "age":18}
    p4 := new(person)
    p5 := &person{
     "name" : "xx"
     "age" : 28,
    }
    p6 := &person{
     "xx",
     38,
    }

在go中,会发现很多这种,干一件事情,搞七搞八的方式,真的心智负担。

本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
讨论数量: 20

跟 scala 比是弟中弟,,

1个月前 评论
Junwind (楼主) 1个月前
长日将尽

最直观的感受就是丑陋。

1个月前 评论
Junwind (楼主) 1个月前
Junwind (楼主) 1个月前
长日将尽 (作者) 1个月前
Junwind (楼主) 1个月前
Junwind

还有这种,Dream是Person的方法,不放在一起定义,要在外面定义,说好的开放封闭原则呢?

file

1个月前 评论

换个角度想,允许你这么多种写法难道不算包容吗?😂

1个月前 评论

开发过程中可以规定只按一种写法

1个月前 评论
fatrbaby

我最受不了的是循环引用,每次组织代码都要小心再小心

1个月前 评论
mirahs 1个月前
yourself 1个月前
goStruct 4周前

是的,虽然我后面基本都用同一种,但是团队肯定各写各的,都养成习惯了,导致看起来确实丑陋。

1个月前 评论
goStruct

go算好的了,现在php的写法才各种花里呼哨。

4周前 评论

基本上开发中都会统一规定声明规范。只是记住这些的区别确实是心智负担

4周前 评论
Junwind (楼主) 4周前

go的简洁是对比出来的,对比其他语言真是比较简洁一种了

4周前 评论

还好了,在C#面前算弟弟

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
躺平大叔 @ 躺平社区
文章
136
粉丝
15
喜欢
102
收藏
59
排名:274
访问:3.5 万
私信
所有博文
社区赞助商