golang變數作用域
一直都覺得 golang 的變數作用域很容易出問題、今天在測試 waitGroup 的時候、出現了一個我無法理解的錯
package main
import (
"fmt"
"net/http"
"sync"
"time"
)
var resp *http.Response
func main() {
var wg sync.WaitGroup
var urls = []string{
"http://www.golang.org/",
"http://www.google.com/",
"http://www.somestupidname.com/",
}
for _, url := range urls {
wg.Add(1)
go func(url string) {
defer wg.Done()
resp, err = http.Get(url) //出錯
resp, err := http.Get(url) //出錯、在這麼用的時候、沒有宣告全域性變數
fmt.Println(url)
time.Sleep(3e9)
}(url)
}
wg.Wait()
}
程式碼如上、我也知道 golang 有變數覆蓋這一說、但關鍵在 resp 不管我在哪宣告、都會出問題、但如果不要 http.Get(url) 這一行、就沒問題了 希望大神們幫忙看一下
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- golang變數作用域問題-避免使用全域性變數Golang變數
- 變數作用域變數
- golang常用手冊:陣列、變數作用域、函式Golang陣列變數函式
- JS變數作用域JS變數
- SCSS 變數作用域CSS變數
- python變數與變數作用域Python變數
- PL/SQL變數作用域SQL變數
- lisp 變數的作用域Lisp變數
- LoadRunner變數作用域變數
- C# 變數作用域C#變數
- 變數物件與作用域鏈變數物件
- JavaScript中變數和作用域JavaScript變數
- JavaScript之變數及作用域JavaScript變數
- java中變數的作用域Java變數
- Go 語言變數作用域Go變數
- JavaScript變數作用域之殤JavaScript變數
- JavaScript 變數的作用域鏈JavaScript變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- 現代 JavaScript 的變數作用域JavaScript變數
- Go語言中的變數作用域Go變數
- 變數、作用域與記憶體變數記憶體
- Shell變數的作用域問題變數
- ES6(二: 變數作用域)變數
- js中變數作用域問題JS變數
- 變數的作用域--js閉包變數JS
- Java 8 之 lambda 變數作用域Java變數
- 理解 Javascript 中變數的作用域JavaScript變數
- Day08-常量、變數、作用域變數
- Go 中的動態作用域變數Go變數
- ES6 變數作用域總結變數
- 注意for迴圈中變數的作用域變數
- c++臨時變數的作用域C++變數
- Python 函式和變數作用域Python函式變數
- Java基礎06:變數、常量、作用域Java變數
- 語法1-變數、常量、作用域變數
- Go基礎知識-02 作用域 常量 變數 作用域(持續更新)Go變數
- 原型模式故事鏈(5)--JS變數作用域、作用域鏈、閉包原型模式JS變數