猿问

Go中的make函数如何处理可选参数?

正如我们所知,Go 不支持可选参数,但是,在使用通道和更具体的缓冲通道时,我意识到make函数确实接受缓冲区大小的可选参数。如果 Go 团队不喜欢可选参数,那么我有点困惑,那么为什么他们支持一个经常与这种反模式一起使用的函数?

好吧,为了不偏离原来的问题太多,谁能帮忙解释一下,在幕后,这是如何工作的?


跃然一笑
浏览 101回答 1
1回答

MMMHUHU

make不是正常功能。new, len, cap, close, append和其他一些都不是。这些是内置函数。大多数内置函数和运算符被编译器重写以调用运行时包中的正常函数。对于通道,编译器将调用重写为对runtime.makechan或相关变体之一的make调用。普通函数不能有可选参数。
随时随地看视频慕课网APP

相关分类

Go
我要回答