10

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

 4 years ago
source link: https://www.v2ex.com/t/796413
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
菜鸡问题: 结构体定义在函数内部如何?

V2EX  ›  Go

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

  chaleaoch · 1 天前 · 811 次点击
语法上没有限制. 但是我在书上没见过这么用.
为什么不这样用呢?

譬如 我想解析很多个 json 但是都是一次性的. 那我得起好多个名字.
一种简便的方式是 在每个函数里面定义一个 结构体 不行吗? 这样命名空间是隔离的 结构体的名字就可以是一个了.
9 条回复    2021-08-18 09:05:51 +08:00

loveuer

loveuer   1 天前

既然这样,直接 map 呗

darknoll

darknoll   1 天前   ❤️ 1

可以定义在内部,好处是可以匿名,缺点是不能定义方法

chaleaoch

chaleaoch   1 天前

@loveuer ?啥意思? 给个例子大佬 菜鸡没理解.

fiypig

fiypig   1 天前 via iPhone

不是一直都可以吗

loveuer

loveuer   1 天前   ❤️ 1

@chaleaoch 如果你只是需要 json.Unmarshal, 可以用 map[string]interface{} 来接受

Trim21

Trim21   1 天前   ❤️ 1

如果这个 struct 只用在这里的话完全可以这么定义

kuangwinnie

kuangwinnie   22 小时 49 分钟前

不如放出来你咋写的,我总觉得“解析多个 json 都是一次性的”听起来不是很好的工程实践。

Maboroshii

Maboroshii   22 小时 44 分钟前 via Android

我经常这么用。。方便简洁,只作用于函数内

rrfeng

rrfeng   15 小时 26 分钟前 via Android   ❤️ 1

当然可以写在函数内部。如果只是这个函数内部有用的话,甚至可以不用起名。

var temp struct{}

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1698 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 18ms · UTC 16:32 · PVG 00:32 · LAX 09:32 · JFK 12:32
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK