[過去ログ] スレ立てるまでもない質問はここで 156匹目 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
165(5): 2021/03/10(水)02:43 ID:hr2yGgcj(2/6) AAS
JavaScript でよくある。
0, 1, 2以上で、型が変わるので統一的に書けないとか
0 ならnil を返して、1 なら単数形を返して、
2以上ならコレクションを返すみたいな、バラバラなAPI を作っている
それを統一的に書けるのが、jQuery。
jQueryオブジェクトに変換すれば、0でも空配列、1以上は配列になる
0以上で、すべてeach で書ける。
0なら何も実行されない
167(1): 165 2021/03/10(水)13:53 ID:hr2yGgcj(3/6) AAS
>>165
に書いた
$_ は、パイプの前段から渡ってくるもの
パイプの前段が、nil なら、エラーになる。
nil.Name に、Name 属性はない
1つが返ってくると、単数型.Name。
2以上なら、配列.Name
nil, 単数型・複数型に、Name 属性があるかどうか、
3つの条件処理で分けないといけない
省12
168: 165 2021/03/10(水)13:58 ID:hr2yGgcj(4/6) AAS
一旦配列化して、each を使うと、
前段のパイプが、0のnil, 1の単数型・2以上の複数型と、どれを返しても正常に動く
jQueryオブジェクト、Ruby の1-liner と同じ原理
[ ].each
[ "a" ].each
[ "a", "b" ].each
169: 165 2021/03/10(水)14:06 ID:hr2yGgcj(5/6) AAS
[ ].each
[ "a" ].each
[ "a", "b" ].each
要素が0の場合は、処理なし。
要素が1の場合は、$_ に、a が渡ってくる
要素が2の場合は、1回目の$_ に、a が渡ってくる
2回目の$_ に、b が渡ってくる
だから一旦配列化して、each を使うと、
前段のパイプが、0のnil, 1の単数型・2以上の複数型と、どれを返しても正常に動く
170: 165 2021/03/10(水)14:21 ID:hr2yGgcj(6/6) AAS
例えば、JavaScript では、関数の戻り値が、
0個・該当無しの場合は、nil を返して、
1個の場合は、文字列を返して、
2個以上の場合は、配列を返すとか、
3つの型が異なる設計にしているから、
一々、3つの条件処理で分けないといけない
これが苦痛だから、jQuery オブジェクトが出来た。
0のnil, 1の単数型・2以上の複数型と、どれを返しても正常に動く
nilでも単数型でも、配列化してしまうので、each で処理できる
176: 165 2021/03/11(木)13:08 ID:EP88fPM9(1/2) AAS
大文字に変換する、Ruby の1-liner、
ls | ruby -ne 'print $_.upcase'
これが動く原理は、-e オプションで、
print $_.upcase を、暗黙の内にループで囲むから
ls | ForEach-Object { echo $_ }
も、たぶん同じ原理で、
ForEachで、ループで囲むか、イタレータ・配列化してる
これによって、前段が、次の3パターンの型のどれを返しても、エラーにならない。
該当なし0, nil
1つの単数型
省6
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.054s