php editor Strawberry は、特定の型を除外する制約の作成に関する記事を提供します。 PHP では、型制約を使用して関数やメソッドのパラメーターの型を制限できますが、特定の型を除外する制約を記述することは可能ですか?答えは「はい」です。 「!」演算子を使用すると、型制約から特定の型を除外できるため、より正確なパラメーターの型制限を実現できます。この記事では、「!」演算子を使用して型を除外する方法を詳しく説明し、実用的なコード例を示します。この興味深いトピックを一緒に探ってみましょう!
type nonstring interface { // ??? } func myfunc[t nonstring](v t) t { return v } func main() { myfunc(1) // ok myfunc(false) // ok myfunc([]string{}) // ok myfunc("hi, boy!") // i hope a comiler error occurs here! }
私が望むものは、上記のコードのコメントに記載されています。
golangでは可能でしょうか?
オリジナルシーン
次の 2 つの関数があります:
リーリーany2string(v)
は、任意の v
を文字列に変換できます。ただし、v
が整数の場合は、integer2string(v)
の方がはるかに高速です。
したがって、コンパイラには、より高速な integer2string(v)
が適用可能な場合に が any2string(v) を呼び出さないようにしたいと考えています。
どのタイプでも満たせない制約を定義できます。例:
リーリー
この制約では、型が正確にint であり、メソッド
foo() を持つ必要があります。事前に宣言された型にはメソッドを定義できないため、この制約を満たすことは不可能です。
関数が離散量タイプを除くすべてのタイプで同一である場合は、タイプ スイッチを使用するだけです:
リーリー
any 型の通常のパラメータは問題なく動作するため、ジェネリックスも必要ありません。
以上が特定の型を除外する制約を記述することは可能ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。