[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild2 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
984: 名前は開発中のものです。 [sage] 2020/01/11(土) 02:03:49.82 ID:eNMw2FnY >>981-983 実行時の話な var seq = list.Where(...)が返すのはIEnumだが、 実際にforeach(var n in seq)で遅延評価されるときには一つずつの値を返してるし、それが次のWhereに送られてる ループの位置を見てみろ、配列は一回しか回ってないだろ? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/984
986: 名前は開発中のものです。 [sage] 2020/01/11(土) 02:34:07.57 ID:eNMw2FnY >>985 yieldのごく普通の振る舞いなんだからイテレーター使ったことあるなら分かるだろ? ちなみに具体的なソースはこれな https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Where.cs http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/986
988: 名前は開発中のものです。 [sage] 2020/01/11(土) 03:42:34.65 ID:eNMw2FnY とりあえず>>969と>>976から読み取ると、LINQで繋がれたメソッドは全部独立したIEnumerableを返してるような誤解をしてるんだと思う 実際は宣言時にチェーンの最後にあるメソッドが一つのIEnumerableを返すだけだし、間にある他のメソッドは最後のメソッドがデリゲートとして一括で実行する だからMoveNextは一つの要素に一回ずつしか基本的に呼ばれず、従ってループも一回だけ これで納得出来ないならもう5個チェーン繋げたら5回ループされてると思っても良いよ、別にそれでも実害は一切無い http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/988
991: 名前は開発中のものです。 [sage] 2020/01/11(土) 12:19:43.31 ID:eNMw2FnY >>989 率直に言ってお前は何を主張したいの? まずそれ教えてくれ そのレスを読むだけだとわざわざ実装のURLまで見せたのにソースも読めない子なんだぁとしか思えん http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/991
996: 名前は開発中のものです。 [sage] 2020/01/11(土) 13:01:07.21 ID:eNMw2FnY >>993 だろ、やっぱり入れ子になってると勘違いしてるよな? サンプルソース書いてあげたから見てみな IL_009aのループ一度しか無いし中身の取り出しも一回だけ その後でLINQメソッドに渡されたデリゲートを適用してそのままループ内の処理に進んでる https://imgur.com/a/E99qR2O http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/996
1000: 名前は開発中のものです。 [] 2020/01/11(土) 13:17:05.48 ID:eNMw2FnY 頭悪い子だな http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/1000
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.607s*