gosqlite パッケージでは、Exec メソッドは ...interface{} パラメータで表される可変数の引数を受け入れます。個々のパラメータを直接渡すことはできますが、文字列スライス ([]string) を渡すとコンパイル エラーが発生します。この問題に対処するために、別のアプローチを検討してみましょう。
空のインターフェイス スライスの作成:
回避策の 1 つは、空のインターフェイス スライスを作成し、元の文字列スライスから値を割り当てることです。繰り返して。この手法はコンパイルの問題を解決しますが、大幅なオーバーヘッドを伴う線形時間コピーが必要です。
線形時間コピーの回避:
隠れたコストを排除し、効率を向上させるための場合は、スライスのインデックスと値を含む範囲を Exec メソッドに渡すことを検討してください。これにより、コピーを必要とせずに直接引数を変換できます。
リフレクションを使用した一般的なソリューション:
リフレクションを利用すると、より一般的なソリューションを実装できます。これには、reflect.ValueOf(values) を使用して元のスライスを反映し、valuesVal.Index(i).Interface() を介して各要素にアクセスすることが含まれます。リフレクションでは実行時のオーバーヘッドが発生しますが、さまざまなタイプのスライスを空のインターフェイス スライスに変換する柔軟性が得られます。
以上がVariadic の空のインターフェイス パラメーターを使用して文字列スライスを gosqlite Exec メソッドに効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。