ES2015でJavaScript文字列を反復可能にするという設計上の決定を理解してくれる人がいらっしゃいますか?ほとんどのイテラブルは、他のもののコレクションを表します。Array
,Set
、Map
、Generator
(まあまあ)。文字列は、文字列のコレクション(Unicodeコードポイントも含む)でなければなりません。したがって、文字列のコレクション(たとえば、文字列のSet
または文字列を生成するジェネレータ)を受け入れる機能を使用する場合は、1つの文字列にまたはのように、ユーザーの意図を区別する方法はありません。彼女は単一の文字列またはコードポイントの繰り返し可能なものを意味しましたか?文字を反復することは、文字列の集合を渡すことと比較して、コーナーケースのように思える。この場合の私の傾向は、(意図された)タイプがstring
∪Iterable<string>
である場合、特別な場合の文字列パラメータになります。ES2015で文字列iterableが使用されるのはなぜですか?
function deleteDocuments(ids /* string or Iterable<string> */) {
if('string' === typeof ids) {
deleteSingleDocById(ids);
} else {
for(let id of ids) {
deleteSingleDocById(id);
}
}
}
何が欠けていますか?
関数が単一のパラメータを必要とする場合は、反復可能な文字列か反復可能な配列のいずれかになります。なぜiterableを処理するだけではないのですか?あなたのジレンマは不明です。 – Pointy
FWIWこれは、文字列の繰り返しがPythonでうまくいった方法です。 –
期待される結果は何ですか? – guest271314