mock开发:问题及解决

发布时间 2023-04-21 11:21:38作者: 西伯尔

1、我想在cli的函数中给wsc对象的某个属性赋值

考虑以下三种方案:

  • 回调:需要把函数作为参数。这个匿名函数的参数不可修改,而且是来自控制台输入,没办法。
  • context:把context本身作为参数传递,context里面放wsc对象。还是改不了参数,没办法。
  • 全局:只能全局了,把wsc声明为全局变量。
var connCmd = &cobra.Command{
	Use:   "conn [addr]",
	Short: "连接服务器",
	Long: `指令用法:

	conn 127.0.0.1:8888    和服务器建立ws连接,地址格式"127.0.0.1:8888",超时时间单位是s

	-to, --timeout int          超时时间,单位s,默认是5s【简写只能是一个字母吗?可以是两个吗 to?】
	`,
	Args: cobra.MinimumNArgs(1),
	Run: func(cmd *cobra.Command, args []string) {
		wsc := service.NewVTVLMsg(args[0], global.API_CONN, timeout)
		wsc.Start()
	},
}

怎么使用context,怎么使用回调?

多处调用,都需要相同的根