青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

戰魂小筑

討論群:309800774 知乎關注:http://zhihu.com/people/sunicdavy 開源項目:https://github.com/davyxu

   :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評論 :: 0 Trackbacks

看C#例子

            Action[] a = new Action[3];
 
            for (int i = 0; i < 3; i++)
            {
                a[i] = ( ) => { Console.WriteLine(i); };
            }
 
            for (int i = 0; i < 3; i++){
                a[i]();
            }

C#打印結果為3 3 3

 

Golang的例子

    a := make([]func(), 3 )
    
    for i := 0; i < 3; i++ {
        
        a[i]= func( ){
            
            fmt.Println(i)
            
        }    
    
    }
    
    for _, s := range a {
        s()
    }

Golang打印結果為3 3 3

 

最后是Lua的例子

a = {}
 
for i = 1, 3 do
 
    table.insert( a, function()
        print(i)
    end
    )
 
end
 
 
for _, v in ipairs(a) do
    v()
end

Lua打印結果為1 2 3

 

差異在于, C#和Golang將變量捕獲到閉包內時, 均使用引用方式, 即當最后開始調用使用變量時, 由于變量已經結束循環, 所以是最終值

但是Lua捕獲方式是值捕獲, 因此比較容易理解, 是多少就是多少

posted on 2015-09-23 18:31 戰魂小筑 閱讀(3854) 評論(2)  編輯 收藏 引用 所屬分類: 腳本技術Golang

評論

# re: Golang, Lua, C#閉包變量捕獲差異 2015-09-24 09:52 馬克思
把Lua代碼循環部分改一改,也能打印出三個同樣的值:
a = {}

local i = 1
while i <= 3 do
table.insert( a, function()
print(i)
end
)
i = i + 1
end


for _, v in ipairs(a) do
v()
end  回復  更多評論
  

# re: Golang, Lua, C#閉包變量捕獲差異 2015-09-28 16:45 vv
你的理解完全是錯的,C# Golang 和 Lua 閉包都是捕獲引用的。
問題在于循環變量 i 變量的作用域
lua 是只在循環體內有效,上一次循環體執行跟下次的 i 是不同的
C# Golang 的 i 作用域包括整個循環條件+循環體,是循環體的外層,上一次循環體執行跟下次的 i 是同一個變量
想要驗證的話 看看 for i=1,4 do print(i);i=i+1; end 類似的語句在各個語言里會打印幾行

一般執行這種的時候,C# Golang 會在循環體內再定義一個變量讓他等于 i 再把這個變量傳給閉包
拿這種來考人一般是 javascript ,因為 js 只有函數級作用域,所以循環體內再定義一個變量也是沒用的


只有 java 的變量捕獲才是值捕獲,java閉包所綁定的本地變量必須使用final修飾符

  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美大片网址| 一本色道久久综合亚洲精品婷婷 | 久久人人97超碰人人澡爱香蕉| 免费高清在线一区| 欧美国产日本在线| 国产一区二区三区四区hd| 日韩一区二区精品视频| 麻豆亚洲精品| 亚洲特级毛片| 欧美国产成人在线| 在线午夜精品| 最新国产乱人伦偷精品免费网站| 一本久久综合| 亚洲天堂第二页| 伊人蜜桃色噜噜激情综合| 欧美在线短视频| 一本久久综合| 欧美日韩中文字幕| 日韩午夜一区| 亚洲欧美精品在线观看| 欧美日韩一区在线播放| 亚洲精品欧美一区二区三区| 麻豆国产精品va在线观看不卡| 蜜桃久久av一区| 欧美一区二区三区久久精品| 麻豆成人在线播放| 先锋影音久久久| 亚洲午夜激情网站| 亚洲第一黄色| 亚洲风情在线资源站| 久久躁日日躁aaaaxxxx| 亚洲国产另类久久精品| 国产一区二区三区在线观看网站| 亚洲第一天堂av| 国产日韩一区二区三区在线| 欧美在线你懂的| 欧美在线啊v| 伊人天天综合| 亚洲一区免费网站| 国产一区二区在线观看免费| 亚洲乱码精品一二三四区日韩在线 | 午夜久久tv| 欧美一区二区三区视频在线观看| 国产视频不卡| 亚洲一区二区三区精品在线观看| 亚洲另类自拍| 一区二区三区视频在线观看| 亚洲成色777777女色窝| 欧美一区二区视频在线观看| 亚洲在线视频一区| 亚洲欧美卡通另类91av| 亚洲视频大全| 久久久高清一区二区三区| 91久久嫩草影院一区二区| 一本久久综合亚洲鲁鲁| 一本一本a久久| 欧美区一区二区三区| 亚洲欧美在线看| 欧美午夜精品一区| 免费看黄裸体一级大秀欧美| 欧美日本韩国一区| 亚洲黄色影片| 一本色道久久综合精品竹菊| 欧美aaa级| 亚洲精品久久久久久下一站| 国产亚洲美州欧州综合国| 亚洲欧美电影院| 久久久国产视频91| 欧美三级免费| 亚洲婷婷免费| 久久精品一区二区三区不卡| 国产一区二区三区电影在线观看| 香蕉久久一区二区不卡无毒影院 | 亚洲国产日韩一级| 国产日韩在线看片| 久久九九99视频| 欧美va亚洲va日韩∨a综合色| 欧美日本一区| 一区二区激情| 久久蜜桃香蕉精品一区二区三区| 欧美三日本三级少妇三2023| 夜夜爽99久久国产综合精品女不卡| 亚洲国产精品99久久久久久久久| 在线免费精品视频| 欧美激情女人20p| 美女爽到呻吟久久久久| 亚洲国产一区二区精品专区| 欧美日韩一区在线观看| 欧美在线播放一区| 欧美顶级大胆免费视频| 极品尤物av久久免费看| 亚洲男人的天堂在线| 韩国精品久久久999| 亚洲摸下面视频| 美女任你摸久久| 亚洲视频免费观看| 国模 一区 二区 三区| 亚洲欧美一区二区三区在线 | 亚洲黄色av一区| 国产精品美女久久久久aⅴ国产馆| 亚洲高清资源| 校园激情久久| 亚洲乱码一区二区| 国产午夜精品理论片a级大结局| 老司机免费视频一区二区三区| 亚洲免费电影在线观看| 99在线|亚洲一区二区| 国产精自产拍久久久久久| 亚洲欧美怡红院| 亚洲国产91精品在线观看| 欧美在线视频观看| 夜夜嗨av色综合久久久综合网| 国产精品一区视频| 欧美久久久久| 久久久久久日产精品| 欧美黄色影院| 亚洲精品乱码视频| 激情久久五月| 国产日产精品一区二区三区四区的观看方式| 亚洲一级在线| 亚洲精品在线三区| 亚洲高清资源| 欧美成人视屏| 免费成人你懂的| 久久久国产视频91| 久久福利影视| 欧美一区二区在线免费观看| 中文精品视频| 亚洲天堂男人| 亚洲素人一区二区| 一区二区三区**美女毛片| 亚洲国产婷婷香蕉久久久久久| 精品成人在线观看| 亚洲视频网站在线观看| 亚洲女与黑人做爰| 黄色亚洲免费| 国产中文一区二区| 狠狠色丁香婷婷综合| 国际精品欧美精品| 狠狠色噜噜狠狠色综合久| 亚洲大胆视频| 国内一区二区在线视频观看| 国产在线国偷精品产拍免费yy| 国产日韩一区| 红桃视频国产一区| 亚洲第一精品久久忘忧草社区| 在线播放一区| 亚洲黄一区二区| 99热在线精品观看| 亚洲午夜av在线| 韩国av一区二区| 激情综合激情| 91久久综合亚洲鲁鲁五月天| 亚洲人成人99网站| 亚洲视频国产视频| 欧美一区二区三区四区夜夜大片| 欧美亚洲视频一区二区| 久久久久久久激情视频| 牛牛精品成人免费视频| 91久久综合| 亚洲一区二区三区在线视频| 午夜精品久久久久久久久久久久久| 性欧美大战久久久久久久免费观看| 久久超碰97人人做人人爱| 亚洲精品视频免费在线观看| 一区二区三区欧美激情| 欧美在线|欧美| 欧美大片在线看免费观看| 亚洲女人小视频在线观看| 久久精品青青大伊人av| 欧美精品一区二区三区很污很色的| 国产精品成人免费视频| 久久久最新网址| 欧美国产综合| 亚洲一区bb| 欧美成人69av| 国产欧美高清| 亚洲日本在线观看| 久久国产精品久久久久久| 亚洲最新在线| 久久一区精品| 另类天堂视频在线观看| 亚洲片区在线| 久久er精品视频| 欧美视频免费| 亚洲区中文字幕| 久久久噜噜噜久久中文字幕色伊伊| 亚洲国产婷婷香蕉久久久久久99 | 亚洲欧美精品| 欧美国产视频在线观看| 国产午夜精品一区二区三区视频| 亚洲精品黄色| 免费成人高清在线视频| 亚洲专区国产精品| 欧美日韩国产欧| 欧美日韩精品免费观看视频| 国产一区二区中文字幕免费看| 亚洲小视频在线观看| 亚洲第一精品夜夜躁人人爽| 欧美亚洲自偷自偷|