【Lua】閉包可能會導致的變量問題

先思考下面這個問題:

local function counter()local count = 0return function()count = count + 1return countend
endlocal a = counter()
local b = counter()print(a()) --> ?
print(a()) --> ?
print(b()) --> ?
print(a()) --> ?

輸出結果:

print(a()) --> 1
print(a()) --> 2
print(b()) --> 1
print(a()) --> 3

問題1:為什么每一次print(a())的結果都不一致呢?函數體內的count不應該是一個臨時變量嗎,怎么在調用之前會在上一次調用的結果后進行計算?
分析原因🤔:這是由于閉包引起的,由于return內寫的函數里對count有所引用,因此在每次調用完a后,變量count并沒有被銷毀

問題2:為什么a的值與b的值不會相互影響?
回答🤔:a和b都是由counter()返回的閉包函數實例,它們分別捕獲了不同的 count 變量副本,因此它們的計數是相互獨立的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915077.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可觀測性、OpenTracing、OpenCensus、OpenTelemetry、Jaeger

監控與觀測 隨著軟件應用從單片架構向分布式微服務體系轉變,應用監控(Monitoring)和觀測(Observability)的需求也隨之提升。兩者存在相同的定義,目的都是為了發現應用程序中的問題。但還是有差別: 監控:目的是為了捕獲已知的問題…

Linux下使用原始socket收發數據包

在Linux系統中,使用非原始的socket,可以收發TCP或者UDP等網絡層數據包。如果要處理網絡層以下的數據包,比如ICMP、ARP等,或者更底層,比如鏈路層數據包,就得使用原始socket了。 創建socket 創建socket要使用…

暑期自學嵌入式——Day05補充(C語言階段)

接續上文:暑期自學嵌入式——Day05(C語言階段)-CSDN博客 主頁點關注不迷路喲。你的點贊、收藏,一鍵三連,是我持續更新的動力喲!!! 主頁: 一位搞嵌入式的 genius-CSDN博…

.NET Core EFCore零基礎快速入門簡單使用

一、什么是 Entity Framework (EF) Core Entity Framework (EF) Core 是輕量化、可擴展和跨平臺版的對象關系映射程序 (O/RM)數據訪問技術,。 它將開發人員從編寫大量 SQL 語句中解放出來。 二、EF的相關程序包 Microsoft.EntityFrameworkCore 核心程序包&#x…

AAC音頻格式

目錄 AAC音頻格式介紹 主要特點 技術優勢 常見文件擴展名 應用領域 AAC與PCM的區別與優勢對比 基本概念差異 主要技術區別 各自優勢 PCM的優勢 AAC的優勢 應用場景選擇 AAC音頻數據格式解析 1. AAC 文件格式 (1) ADIF (Audio Data Interchange Format) (2) ADT…

pom.xml文件中的${}變量從哪里傳值

在 Maven 的 pom.xml 文件中,${} 格式的變量(稱為屬性占位符)的值來源主要有以下幾種途徑: 1. ?內置屬性(Maven 預定義)?? ${project.basedir}:項目根目錄${project.version}:項…

【人工智能】項目案例分析:使用TensorFlow進行大規模對象檢測

????歡迎大家來到我們的天空???? ?? 作者簡介:我們的天空 ??《頭銜》:大廠高級軟件測試工程師,阿里云開發者社區專家博主,CSDN人工智能領域新星創作者。 ??《博客》:人工智能,深度學習,機器學習,python,自然語言處理,AIGC等分享。 所屬的專欄:TensorF…

C++---cout、cerr、clog

在C編程里,cout、cerr和clog是標準庫提供的重要輸出流對象,在數據輸出方面發揮著關鍵作用。 一、cout:標準輸出流 cout 是 std::ostream 類的對象,其作用是向標準輸出設備(一般是控制臺)輸出數據。它和 C 語…

脈沖神經網絡(Spiking Neural Network, SNN)與知識蒸餾(Knowledge Distillation, KD)

目錄 脈沖神經網絡(Spiking Neural Network, SNN) 知識蒸餾(Knowledge Distillation, KD) 三種類別 三種變體 脈沖神經網絡(Spiking Neural Network, SNN) 收到生物神經系統的啟發,設計的&a…

使用Java完成下面項目

第一題:從控制臺輸入十個學生的成績,使用list集合來保存數據, 遍歷并打印其中成績不及格的成績,打印最高成績,最低成績,并計算及格率代碼如下public class Home1 {public static void main(String[] args) …

龍虎榜——20250718

上證指數今天上漲收陽線,繼續在5天均線保持強勢上漲,個股下跌稍多,大盤股上漲為主。深證指數收小陽線,繼續在5天均線上,總體保持強勢,調整更多是小票。2025年7月18日龍虎榜行業方向分析1. 醫藥醫療? 代表標…

2025年華為認證之HCIE-云計算方向的報考流程

一、先搞明白:HCIE - 云計算認證到底是啥? HCIE - 云計算(華為認證 ICT 專家 - 云計算)是華為體系里云計算領域的頂級認證,說白了,就是證明你有能力搞定大型企業的云平臺設計、部署和運維。現在政企、金融…

什么是私有化部署企業即時通訊?吱吱企業即時通訊安全嗎?

在企業數字化轉型加速的今天,溝通工具的選擇已經從滿足簡單溝通,升級為“安全、高效、可控”。其中,“私有化部署企業即時通訊”成為許多中小型企業、跨國企業以及數據敏感型企業的核心需求。 那么,究竟什么是私有化部署&#xff…

Vue3 中使用 Element Plus 實現自定義按鈕的 ElNotification 提示框

在 Vue3 項目中,我們經常會用到 ElNotification 作為消息提醒組件,尤其是在異步操作、任務完成或用戶需要交互確認時。然而,Element Plus 默認的 Notification 是非交互式的,不能直接嵌入按鈕或事件。 今天我們來實現一個帶自定義…

下載webrtc M114版本源碼只能使用外網googlesource源-命令版

聲網、國內源都不行,只能外網googlesource源!!! 二、創建 Ubuntu 容器(帶目錄掛載) 拉取Ubuntu鏡像 docker pull ubuntu:22.04創建并啟動容器(掛載Windows目錄到容器) docker run -i…

Linux運維新手的修煉手扎之第21天

Nginx服務和Tomcat服務1 負載均衡語法格式:upstream[一個或多個]rootubuntu24-13:~# vim /etc/nginx/conf.d/vhost.confupstream group1 {server 10.0.0.16;}upstream group2 {server 10.0.0.14;}server {listen 80;server_name sswang1.magedu.com;location / {pro…

TrOCR: 基于Transformer的光學字符識別方法,使用預訓練模型

溫馨提示: 本篇文章已同步至"AI專題精講" TrOCR: 基于Transformer的光學字符識別方法,使用預訓練模型 摘要 文本識別是文檔數字化中的一個長期研究問題。現有方法通常基于CNN進行圖像理解,基于RNN進行字符級文本生成。此外&#…

西門子工業軟件全球高級副總裁兼大中華區董事總經理梁乃明先生一行到訪庭田科技

概要2025年6月,西門子工業軟件全球高級副總裁兼大中華區董事總經理梁乃明先生一行到訪我司。庭田科技總經理聶春文攜銷售團隊對西門子代表團表示熱烈歡迎,并就當前業務發展方向及未來行業聚焦領域與代表團展開深入交流。 聶春文總經理及銷售團隊陪同西門…

在 Jenkins 中使用 SSH 部署密鑰

本文檔介紹了如何在 Jenkins 中配置 SSH 部署密鑰,以便更穩定地拉取 Git 倉庫代碼,避免常見的 RPC 錯誤。 1. 背景 在使用 Jenkins 進行持續集成時,常常需要從 Git 倉庫拉取代碼。如果使用 HTTP/HTTPS 協議,有時會遇到 RPC 錯誤&…

小紅書采集工具:無水印圖片一鍵獲取,同步采集筆記與評論

我用python語言開發了一款名為“爬xhs圖片軟件”的工具,該工具不僅能采集圖片,還可獲取筆記數據、評論數據等內容。 軟件界面長這個樣子: 采集到的圖片:演示視頻:https://live.csdn.net/v/485813介紹文章、想你所想&am…