请注意第二条赋值语句中在“=”右边那个部分。切片表达式一般由字符串、数组或切片的值以及由方括号包裹且由英文冒号“:”分隔的两个正整数组成。这两个正整数分别表示元素下界索引和元素上界索引。在本例中,切片表达式numbers3[1:4]的求值结果为[]int{2, 3, 4}。可见,切片表达式的求值结果相当于以元素下界索引和元素上界索引作为依据从被操作对象上“切下”而形成的新值。注意,被“切下”的部分不包含元素上界索引指向的元素。另外,切片表达式的求值结果会是切片类型的,且其元素类型与被“切片”的值的元素类型一致。实际上,slice1这个切片值的底层数组正是numbers3的值。
2016-07-25
var myChannel = make(chan int, (0))
time.Sleep(time.Second)
fmt.Println("Sent!")
我的理解是fmt.Println("Received!", <-receiver) 此处go语句块被阻塞,当 sender <- number传入值时,阻塞释放,此处需要让sent go语句块等待时Received! 6优先执行。sent后执行
time.Sleep(time.Second)
fmt.Println("Sent!")
我的理解是fmt.Println("Received!", <-receiver) 此处go语句块被阻塞,当 sender <- number传入值时,阻塞释放,此处需要让sent go语句块等待时Received! 6优先执行。sent后执行
2016-07-25
直接在下面加一行
defer fmt.Printf("%d ",fibonacci(i))
不就好了吗。。
defer fmt.Printf("%d ",fibonacci(i))
不就好了吗。。
2016-07-19
package main // 代码包声明语句
// 代码包导入语句
import (
"fmt" // 导入代码包fmt。
)
// main函数
func main() { // 代码块由“{”和“}”包裹。
var num uint64 = 65535
size := (8)
fmt.Printf("类型为 uint64 的整数 %d 需占用的存储空间为 %d 个字节。\n", num, size)
}
// 代码包导入语句
import (
"fmt" // 导入代码包fmt。
)
// main函数
func main() { // 代码块由“{”和“}”包裹。
var num uint64 = 65535
size := (8)
fmt.Printf("类型为 uint64 的整数 %d 需占用的存储空间为 %d 个字节。\n", num, size)
}
2016-07-16