指針 復雜,
切片 與 數組 的 cap 很易出錯,
字典 判斷 key 是否存在 也復雜,
Go,你的簡單易讀性 在 哪里?還是 java 簡單
切片 與 數組 的 cap 很易出錯,
字典 判斷 key 是否存在 也復雜,
Go,你的簡單易讀性 在 哪里?還是 java 簡單
2019-05-02
已采納回答 / 記憶淺談
這里的‘在被接受數據之前’指的是ch<-1存數據吧。緩沖的channel:保證往緩沖中存數據先于對應的取數據,簡單說就是在取的時候里面肯定有數據,否則就因取不到而阻塞。所以緩沖的channel可能在取數據的時候發生阻塞。非緩沖的channel:保證取數據先于存數據,就是保證存的時候肯定有其他的goroutine在取,否則就因放不進去而阻塞。所以非緩沖的channel可能在存數據的時候會發生阻塞。
2019-04-07
package main
import (
"fmt"
)
func main() {
ch := make(chan int)
go func() {
fmt.Println("1")
ch <- 1
}()
<-ch
go func() {
fmt.Println("2")
ch <- 1
}()
<-ch
go func() {
fmt.Println("3")
ch <- 1
}()
<-ch
}
import (
"fmt"
)
func main() {
ch := make(chan int)
go func() {
fmt.Println("1")
ch <- 1
}()
<-ch
go func() {
fmt.Println("2")
ch <- 1
}()
<-ch
go func() {
fmt.Println("3")
ch <- 1
}()
<-ch
}
2019-04-07
func main() {
go fmt.Println("1")
time.Sleep(100*time.Millisecond)
go fmt.Println("2")
time.Sleep(200*time.Millisecond)
go fmt.Println("3")
time.Sleep(300*time.Millisecond)
}
go fmt.Println("1")
time.Sleep(100*time.Millisecond)
go fmt.Println("2")
time.Sleep(200*time.Millisecond)
go fmt.Println("3")
time.Sleep(300*time.Millisecond)
}
2019-04-07
這樣不是更簡單?
老師的方法也很好,但是感覺饒了路。之前也有遇到過
func main() {
for i := 0; i < 10; i++ {
fmt.Printf("%d ", fibonacci(i))
defer func(n int){
fmt.Printf("%d ", fibonacci(n))
}(i)
}
}
老師的方法也很好,但是感覺饒了路。之前也有遇到過
func main() {
for i := 0; i < 10; i++ {
fmt.Printf("%d ", fibonacci(i))
defer func(n int){
fmt.Printf("%d ", fibonacci(n))
}(i)
}
}
2019-04-06
已采納回答 / qq_冥_6
可以看下這篇文章, 有詳細解析 https://www.cppentry.com/bencandy.php?fid=78&aid=216871&page=1
2019-04-04
func read(r io.Reader) ([]byte, error) {
return ioutil.ReadAll(r)
}
return ioutil.ReadAll(r)
}
2019-03-05
func main() {
var wg1 sync.WaitGroup
var wg2 sync.WaitGroup
var wg3 sync.WaitGroup
wg1.Add(1)
wg2.Add(1)
wg3.Add(1)
go func() {
fmt.Println("1")
wg1.Done()
}()
go func() {
wg1.Wait()
fmt.Println("2")
wg2.Done()
}()
go func() {
wg1.Wait()
wg2.Wait()
fmt.Println("3")
wg3.Done()
}()
wg3.Wait()
}
var wg1 sync.WaitGroup
var wg2 sync.WaitGroup
var wg3 sync.WaitGroup
wg1.Add(1)
wg2.Add(1)
wg3.Add(1)
go func() {
fmt.Println("1")
wg1.Done()
}()
go func() {
wg1.Wait()
fmt.Println("2")
wg2.Done()
}()
go func() {
wg1.Wait()
wg2.Wait()
fmt.Println("3")
wg3.Done()
}()
wg3.Wait()
}
2019-03-05