1、实现 -del 标志以从列表中删除一个项目。使用 API 中的 Delete 方法来执行此操作。
在 interacting/todo/todo.go 文件中定义了 Delete 方法用于从列表中删除项目:
// Delete 方法从列表中删除一个 ToDo 项目
func (l *List) Delete(i int) error {
ls := *l
if i <= 0 || i > len(ls) {
return fmt.Errorf("Item %d does not exist", i)
}
// 调整为基于 0 的索引
*l = append(ls[:i - 1], ls[i:]...)
return nil
}
同时,在 apis/todoClient.v3/cmd/del.go 文件中更新了 delCmd 命令和定义了 delAction 函数以执行删除操作:
var delCmd = &cobra.Command{
Use: "del <id>",
Short: "Deletes an item from the list",
SilenceUsage: true,
Args: cobra.ExactArgs(1),
RunE: func (cmd *cobra.Command, args []string) error {
apiRoot := viper.GetString("api-root")
return delAction(os.Stdout, apiRoot, args[0])
},
}
func delAction(out io.Writer, apiRoot, arg string) error {
id, err := strconv.Atoi(arg)
if err != nil {
return fmt.Errorf("%w: Item id must be a number", ErrNotNumber)
}
if err := deleteItem(apiRoot, id); err != nil {
return err
}
return printDel(out, id)
}
2、添加另一个标志以启用详细输出,显示日期/时间等信息。
要添加一个标志以启用详细输出,显示日期/时间等信息,可以使用 Go 的 flag 包。以下是实现步骤:
- 导入
flag包(若未导入); - 在
main函数中定义一个新的布尔标志; - 解析标志;
- 根据标志的值决定是否显示详细信息。
示例代码如下:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



