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

菜鸡问题: 结构体定义在函数内部如何?

  •  
  •   chaleaoch · Aug 17, 2021 · 2464 views
    This topic created in 1906 days ago, the information mentioned may be changed or developed.
    语法上没有限制. 但是我在书上没见过这么用.
    为什么不这样用呢?

    譬如 我想解析很多个 json 但是都是一次性的. 那我得起好多个名字.
    一种简便的方式是 在每个函数里面定义一个 结构体 不行吗? 这样命名空间是隔离的 结构体的名字就可以是一个了.
    9 replies  •  2021-08-18 09:05:51 +08:00
    drealism
    drealism
    Aug 17, 2021
    1
    既然这样,直接 map 呗
    darknoll
    darknoll
    Aug 17, 2021❤️1
    2
    可以定义在内部,好处是可以匿名,缺点是不能定义方法
    chaleaoch
    chaleaoch
    OP
    Aug 17, 2021
    3
    @loveuer ?啥意思? 给个例子大佬 菜鸡没理解.
    fiypig
    fiypig
    Aug 17, 2021 via iPhone
    4
    不是一直都可以吗
    drealism
    drealism
    Aug 17, 2021❤️1
    5
    @chaleaoch 如果你只是需要 json.Unmarshal, 可以用 map[string]interface{} 来接受
    Trim21
    Trim21
    Aug 17, 2021❤️1
    6
    如果这个 struct 只用在这里的话完全可以这么定义
    kuangwinnie
    kuangwinnie
    Aug 18, 2021
    7
    不如放出来你咋写的,我总觉得“解析多个 json 都是一次性的”听起来不是很好的工程实践。
    Maboroshii
    Maboroshii
    Aug 18, 2021 via Android
    8
    我经常这么用。。方便简洁,只作用于函数内
    rrfeng
    rrfeng
    Aug 18, 2021 via Android❤️1
    9
    当然可以写在函数内部。如果只是这个函数内部有用的话,甚至可以不用起名。

    var temp struct{}
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2702 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 10:43 · PVG 18:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.