初级会员
  • 第 23632 位会员
  • GuoYuefei
  • Solomon Guo
  • 2018-10-09 19:20:57
  • Offline
  • 20 82

最近发布的项目

    暂无

最近的评论

  • #1 @luojh2015 非常感谢回复,的确解决了我的疑问。点赞👍。原来声明别名是需要加等号的,以前没注意,非常感谢。
  • 首先感谢下作者,这里提供的想法对我非常有用。 > 但这里有一个限制:这个 map 仅仅可以用原型是“func()”的没有输入参数或返回值的函数。 关于这点,其实是有解决方法的 ``` type NewCipherModel func(b cipher.Block, iv []byte) cipher.BlockMode type ModeFunc string const ( CBCDecrypter ModeFunc = "NewCBCDecrypter" CBCEncrypter ModeFunc = "NewCBCEncrypter" ) funcs := map[ModeFunc] NewCipherModel { CBCEncrypter:cipher.NewCBCEncrypter, CBCDecrypter:cipher.NewCBCDecrypter, } ``` 直接将需要放入map中类型的type一个类型,当然也可以不用别名 ------ 嗯。。。当然这只可以运用在相同原型的函数。 还有一种方式,我是在看了下面反射的过程中想到的。。。事实上我现在还没学反射。所以我相当的方式其实和上面我想到的方式是相似的。因为没有用代码实现,所以不给出代码了。额额额,哇哈哈,发现不用代码说不来。。。其实终结下就是运用类型检查 ``` import "fmt" func main() { funcs := map[string] interface{}{ "fun1":fun1, "fun2":fun2, } switch fun := funcs["fun2"].(type) { case func():fun() case func(i int):fun(1) } } func fun1(){ fmt.Println("fun1") } func fun2(i int) { fmt.Println("fun2") } 输出是: $ go run test.go fun2 ```
  • 评论了资源 够浪的注意点(golang)
    **持续更新。。。**
  • gogland哈哈我有github学生包暂且不用担心收费问题,在网络上貌似也没破解版。。。 另一个在解决代理问题后vscode还是挺不错的 现在已gogland为主,vscode偶尔测试时用用。
  • 评论了主题 go语言视频大全
    > 谢谢楼主了 > 在表感谢