私はIRCサーバーを作成しており、マップからユーザーを削除する機能があります。この考え方はパターンマッチングを使用することで、ユーザーがマップ内にあれば関数の1つのバージョンが呼び出され、それ以外の場合は別の関数が呼び出されます。Mapに渡された値を持つキーがある関数で、どのようにパターンを一致させることができますか?
私の最初のアイデアは、次の操作を実行することでした。
remove_user_from_channel(User, Channel=#channel_details{users = UserMap=#{User := _}}) ->
Channel#channel_details{users = maps:remove(User, UserMap)}.
しかし、これはエラーvariable 'User' is unbound
でコンパイルに失敗します。
機能レベルのパターンマッチングでこれを達成する方法はありますか?