The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
YanSeven

go 语言的 new 在什么场景算是“最佳实践”,感觉这个内置存在感好低,都可以被删掉了。

  •  
  •   YanSeven · Jun 24, 2025 · 4271 views
    This topic created in 508 days ago, the information mentioned may be changed or developed.
    大部分常见,都可以被 var + &给解决。这个 new 是用来解决什么问题的,其最初的场景是什么。
    12 replies  •  2025-06-25 01:34:13 +08:00
    penzi
    penzi
    Jun 24, 2025
    1
    var + & 你看来很正常,但是十多年前写 C/C++的人应该会非常不习惯这么写
    wuhunyu
    wuhunyu
    Jun 24, 2025
    3
    只能 new(T)了吧,还有其它用法吗
    strobber16
    strobber16
    Jun 24, 2025
    4
    不是最初场景,但是我写泛型的时候会用到
    ·func IsZero[T comparable](a T) bool {
    return a == *new(T)
    }
    ·
    FrankAdler
    FrankAdler
    Jun 24, 2025 via Android
    5
    var 出来的指针型是 nil ,mew 的是零值
    这种问题随便找个 ai 问下就行了:go 的 new 关键字 有什么不可替代的场景
    Miranquil
    Miranquil
    Jun 24, 2025❤️1
    6
    @FrankAdler 确切的说是 new 出来的是一个指向目标类型零值的指针。
    WaldenHorizon
    WaldenHorizon
    Jun 24, 2025
    7
    @FrankAdler 楼主提到的&就是为了覆盖你说的场景
    lovelylain
    lovelylain
    Jun 24, 2025 via Android
    8
    new(T)场景也能被 var+&代替,只是能省一行代码。
    nativeBoy
    nativeBoy
    Jun 25, 2025
    9
    @wuhunyu #3 还有`T{}`
    gigishy
    gigishy
    Jun 25, 2025 via iPhone
    10
    作为明示内存分配且并不赋值是个很不错的好习惯,一目了然。
    es1muss2sein
    es1muss2sein
    Jun 25, 2025
    11
    好像没有什么是必须这样写的。
    dobelee
    dobelee
    Jun 25, 2025
    12
    new 我经常用,用来强调变量是零值。不重要的变量才用&,比如 resp 。
    var 很少用,除非强调数据类型,比如 bool 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1899 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 15:07 · PVG 23:07 · LAX 07:07 · JFK 10:07
    ♥ Do have faith in what you're doing.