Fish Shell:
連想配列の使用

方法:

FishはBash 4+のようにネイティブに連想配列をサポートしていませんが、リストと文字列操作の組み合わせを使用することで、同様の機能を実現できます。こちらがそれらの模倣方法です:

まず、「連想配列」要素を別々に設定します:

set food_color_apple "red"
set food_color_banana "yellow"

要素にアクセスするには、直接参照します:

echo $food_color_apple
# 出力: red

それらを繰り返し処理する必要がある場合は、命名規則を考えたforループを使用します:

for food in apple banana
    echo $food_color_$food
end
# 出力:
# red
# yellow

Bashの${!array[@]}で全てのキーを取得する機能が恋しい場合は、キーを別のリストに保存できます:

set food_keys apple banana

for key in $food_keys
    echo $key 'is' $food_color_$key
end
# 出力:
# apple is red
# banana is yellow

詳細解説

他のスクリプト言語のような本物の連想配列は、まだFishのアプローチの一部ではありません。ここで示された回避策は、Fishの文字列操作とリスト機能を活用して、擬似的な連想配列構造を作成します。この方法は機能しますが、組み込みの連想配列サポートがあればもっとクリーンでエラーが少なくなるはずです。BashやZshなどの他のシェルは組み込みの連想配列機能を提供しており、より直接的で読みやすいコードになります。しかし、Fishの設計哲学はシンプルさとユーザーフレンドリーさを目指しており、そのような機能が犠牲になることもあります。この回避策はほとんどのニーズを満たしますが、Fish Shellの進化に注目してください。開発者はコミュニティのフィードバックに基づいて積極的に機能の改善と追加を行っています。