私はGo Langを新しくしました。Go - 譲渡でタイプとして使用できません。
なぜこのエラーメッセージが表示されるのか混乱しました。
は
エラーメッセージがcmd.Args() (type cli.Args)
がtype CmdArgs
あるtype CmdArgs
しない割り当てがcli.Args
であることができることを説明割当タイプのCMDARGSとしてcmd.Args()(タイプ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.Args'を使用します。これは、その特定の' cli'パッケージと相互運用する場合です。 – JimB