この質問がばかげている場合は申し訳ありませんが、質問する必要があります。PHP では、最初に配列を宣言しなくても配列を作成できますが、これは良い方法とは見なされません。Ruby に関する新たな知識を活用して、ディレクトリ内のファイルを一覧表示し、拡張子で並べ替えるコードを作成していました。これを行うために、拡張子に基づいて異なる配列に配置するループを開始しました。このような:
files_by_ext = {} #edited - my bad, it was supposed to be {}
files_by_ext['css'] = ['file.css','file2.css','file3.css']
files_by_ext['html'] = ['file.html','file2.html','file3.html']
次に、キー「css」と「html」を使用してソートします。しかし、「X」ファイルの配列を作成する過程で、キー「X」が存在するかどうかを確認する必要がありました。ファイル (例: 'file.X') を単純にプッシュすることはできませんでした。
この動作を変更するメソッドを作成して、アイテムを最初に宣言せずにプッシュする配列を作成する方法はありますか?
files.each do |f|
extension = /\.(.+)$/.match(f)[1].to_s
files_by_ext[extension] << f
end
そうではありません(それが私がやっていることです):
files.each do |f|
extension = /\.(.+)$/.match(f)[1].to_s
if !files_by_ext.key?(extension)
files_by_ext[extension] = [f]
else
files_by_ext[extension] << f
end
end
すみません、書きすぎたようです。:P読んでくれてありがとう。