我是Go Lang的新人。前往 - 不能用在type中作業
我很困惑爲什麼這個錯誤信息還在。
不能使用cmd.Args()(類型cli.Args)類型CmdArgs在分配
該錯誤消息解釋cmd.Args() (type cli.Args)
不能分配到type CmdArgs
這是type CmdArgs
是cli.Args
。
我已閱讀Cannot use as type in assignment in go,但它並沒有讓我明白我的錯在哪裏。我認爲這是與我不同的問題。
任何解決方案,請?
這裏是我的代碼。
package main
import (
"fmt"
"os"
"github.com/urfave/cli"
)
// CmdArgs is command arguments
type CmdArgs cli.Args
func main() {
program := cli.NewApp()
program.Action = func(cmd *cli.Context) error {
var args CmdArgs
args = cmd.Args()
▼▼▼▼▼▼▼▼▼
cannot use cmd.Args() (type cli.Args) as type CmdArgs in assignment
return nil
}
program.Run(os.Args)
}
感謝您的關注。
你的'CmdArgs'聲明創建一個新類型。你爲什麼要創建一個新類型? – JimB
我不知道你打過這種電話。 'func(ca CmdArgs)Len()int { \t return len(ca) }' 我打算使用它。 –
你打算如何使用它?聲明新類型的唯一原因是從底層類型替換方法集,但很少有任何理由這樣做。你可以創建一個可以用相同的底層類型進行轉換的類型,這樣可以減少混淆,但是如果你正在與該特定的'cli'包進行交互操作,通常會使用'cli.Args'。 – JimB