string
1文字の長さのタイプChar
を使用しようとしています。私ができないのは "コンストラクタ"を作ることです。私は完全に明白な何かが欠けていることを知っているc1
とc2
が "A" である必要はなく、 "ABC"Goでは、文字列基本型の型の「コンストラクタ」を作成するにはどうすればよいですか?
は
type Char string
が宣言
var c1 Char("abc") var c2 Char = "abc"
これらは間違っていると、そのタイプを使用することができますChar
型を宣言します
私が本当に欲しいのは、Charを1文字に制限する "コンストラクタ"です。
とfunc Char
を持つもちろん
func Char(s string) Char { var ch string = s[0] return ch }
はそれを
type.go:8: Char redeclared in this block
を行う方法ではありませんコンストラクタでtype
初期化を強制するための方法はありますか?私は正しい質問をしていますか?
は違った状態とさせて頂いております:ユーザーがvar c Char = "abc"
言えば、彼らはタイプChar
の無効な値を持つことになります - func NewChar(string) Char
Char
として年代にのみ有効なコンストラクタをユーザーに強制する方法はありますか?
golangではなく、Goのプログラミング言語です。 – peterSO
golangについて申し訳ありません - 私はそれを標準的な参考文献として見ていたと思っていました。 "golang"と "golang"のゴーグルの違いは大きいので、常に "golang"というフレーズを礼儀として入れようとしましたが、提案には開きます –
コンストラクターを強制したい場合は、パブリックインターフェイスと、インターフェイスを実装するprivate構造体を返すコンストラクタを公開します。 –