Go - could not import github.com/go-sql-driver/mysql
25 Apr 2023這個問題也可能發生在其他引入 github package 的情況下,Go 1.17 後的版本需要 dependencies 被清楚標明在 go.mod
內,解決方法如下:
- go mod init example.com/module (optional)
- go mod tidy
這個問題也可能發生在其他引入 github package 的情況下,Go 1.17 後的版本需要 dependencies 被清楚標明在 go.mod
內,解決方法如下:
在整合別人寫的 html + css 進 React 的時候,css 的部分出現了這個錯誤,改正方法如下:
justify-content: start;
justify-content: flex-start;
Go 內建的 map 不具有 thread-safe 的特性,例如執行以下程式碼多次,有時候會成功,但大多時間會出現 concurrent map writes
的錯誤:
package main
import (
"fmt"
"sync"
)
func main() {
var m = map[int]int{}
wg := sync.WaitGroup{}
wg.Add(10)
for i := 0; i < 10; i++ {
go func(i int) {
m[i%5]++
fmt.Println(m)
wg.Done()
}(i)
}
wg.Wait()
}
改善方法:使用 sync.Mutex 或是 sync.RWMutex,來將正在被操作的 map 鎖住。例如以下:
package main
import (
"fmt"
"sync"
)
type m struct {
sync.Mutex
m map[int]int
}
func (m *m) Get(key int) int {
m.Lock()
a := m.m[key]
m.Unlock()
return a
}
func (m *m) Put(key, value int) {
m.Lock()
m.m[key] = value
m.Unlock()
}
func (m *m) Range(f func(k, v int)) {
m.Lock()
for k, v := range m.m {
f(k, v)
}
m.Unlock()
}
func main() {
var mm m
mm = m{m: make(map[int]int)}
wg := sync.WaitGroup{}
wg.Add(10)
for i := 0; i < 10; i++ {
go func(i int) {
mm.Put(i, i%5)
fmt.Println(mm.Get(i))
wg.Done()
}(i)
}
wg.Wait()
}
另外,Go 在 1.9 後的版本引入一個結構叫做 sync.Map
。這個結構的 method 包括以下:
package main
import (
"fmt"
"sync"
)
func main() {
var m = sync.Map{}
var wg = sync.WaitGroup{}
wg.Add(1000)
for i := 0; i < 1000; i++ {
go func(i int) {
m.LoadOrStore(i, i)
wg.Done()
}(i)
}
wg.Wait()
i := 0
m.Range(func(k, v interface{}) bool {
i++
return true
})
fmt.Println(i)
}
在有大小標題的情況下,notion 有內建的方法幫助使用者快速建立目錄:
之前在已經有 Windows 系統的電腦安裝了 Ubuntu 雙系統,這邊做的筆記記錄一下!
共有五個分區,以下僅供參考,實際分區要自己的硬碟大小等而定:
設置安裝啟動設備,選擇 EFI 分區的設備號,彈出視窗確認後按確認。
我在安裝 Ubuntu 的時候有遇到這個錯誤,照著以下步驟操作解決問題:
shutdown /t /fw /t 0
會進入 BIOS頁面ipconfig
sudo apt install net-tools
sudo apt install tree
Vim
sudo apt-get install vim
Visual studio code
sudo apt update
sudo apt install software-properties-common apt-transport-https curl
curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
sudo apt update
sudo apt install code
# 測試成功了沒
code .
Git
sudo apt update
sudo apt install git
Docker
sudo apt-get install docker.io
service docker status
出現 Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
錯誤的解決方式:
建立 docker 群組
sudo groupadd docker
把當前使用者加到群組
sudo gpasswd -a $USER docker
激活更改/重啟docker
newgrp docker
sudo systemctl restart docker
設置 ssh
cd ~/.ssh
pwd
# /home/wei/.ssh
sudo ssh-keygen -o -t rsa -C "your_github_mail_address"
pwd
的路徑加上 /.ssh)cat /home/wei/.ssh/id_rsa.pub
,將公鑰複製起來sudo chmod 755 /home/wei/.ssh/id_rsa
,後面的路徑改成自己的 id_rsa 位置,來設置權限測試是否成功:ssh -T git@github.com
成功的話會顯示:Hi 用戶名! You’ve successfully authenticated 等字
Go
sudo apt update
sudo apt upgrade
sudo apt search golang-go
sudo apt search gccgo-go
sudo apt install golang-go
# check
go version
資料來源:
https://www.bilibili.com/read/cv16108268?from=search
https://zhuanlan.zhihu.com/p/268620595
https://www.myfreax.com/how-to-install-visual-studio-code-on-ubuntu-20-04/