型アサーション エラー: Go でインターフェイスを文字列に変換しています
Go では、インターフェイス値はさまざまな型の値を保持できます。インターフェイス値を特定の型に変換する必要がある場合は、型アサーションを使用します。これは、構文 x.(T) を使用して行われます。ここで、x はインターフェイス値、T はターゲット型です。
ただし、インターフェイス値を文字列に変換しようとすると、エラーが発生する可能性があります。
invalid operation: data + "\n" (mismatched types interface {} and string)
このエラーは、インターフェイスに格納されている値が文字列ではない場合に発生します。これに対処するには、型アサーションを使用して、値が実際に文字列であることを確認し、正しい型変換を実行する必要があります。
コードでは、次の変更を加えました:
data := <-myEventChan s:= data.(string) + "\n"
この型アサーションは、myEventChan から受け取った値が文字列であるかどうかをチェックします。存在する場合は、それを文字列に変換し、改行文字を追加します。そうしないと、実行時にパニックが発生します。
追加メモ:
以上がGo でインターフェイスを文字列に安全に変換するにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。