如果您不知道我的想法,教程中有几点可以让您自己离开而没有线索或链接.所以我对这些的长度感到抱歉:
Try printing needInt(Big) too
Run Code Online (Sandbox Code Playgroud)
我猜是允许的内容比常量少?
the { } are required.
(Sound familiar?)
Run Code Online (Sandbox Code Playgroud)
提到了哪种语言?
(And a type declaration does what you'd expect.)
Run Code Online (Sandbox Code Playgroud)
为什么我们需要单词type和单词struct?我应该期待什么?
为什么构造函数中隐含零?这听起来像Go的危险设计选择.是否有一个PEP或http://golang.org/doc/go_faq.html以外的任何内容?
Make?有施工人员吗?new和之间有什么区别make?
delete来自哪里?我没有导入它.
什么是%v格式化立场?值?
panic: runtime error: index out of range
goroutine 1 [running]:
tour/pic.Show(0x400c00, 0x40ca61)
go/src/pkg/tour/pic/pic.go:24 +0xd4
main.main()
/tmpfs/gosandbox-15c0e483_5433f2dc_ff6f028f_248fd0a7_d7c2d35b/prog.go:14 +0x25
Run Code Online (Sandbox Code Playgroud)
我猜我打破了某种方式....
package main
import "tour/pic"
func Pic(dx, dy int) [][]uint8 {
image := make([][]uint8, 10)
for i := range image {
image[i] = make([]uint8, 10)
}
return image
}
func main() {
pic.Show(Pic)
}
Run Code Online (Sandbox Code Playgroud)
函数失败时返回错误值?我必须通过错误检查限定每个函数调用?当我编写疯狂的代码时,程序的流程是不间断的?例如Copy(only_backup, elsewhere);Delete(only_backup),复制失败....
他们为什么要那样设计呢?
Den*_*ret 17
#15:
我猜int的允许比常量少?
对,就是这样.根据规范,"数字常量表示任意精度的值并且不溢出",而类型int具有32位或64位.
#21:
提到了哪种语言?
没有; 它暗指着#16,用同样的话for来讲同样的事情,关于-loops.
#25:
a type declaration does what you'd expect有点不幸,我同意(因为它假定读者可以期待太多......)但这意味着你要定义一个结构(带有struct关键字)并将类型名称"Vertex"绑定到它,type Vertex部分(见http://golang.org/ref/spec#Type_declarations)
#28:
未初始化的结构被归零的事实在许多情况下确实非常有用(许多标准结构如缓冲区也使用它)
它并不仅仅隐含在构造函数中.看这个
var i int; fmt.Println(i)
打印出来0.这类似于java,其中基本类型具有隐式默认值.布尔值是假的,整数是零等等.零值的规格.
#30:
new分配内存并返回指向它的指针,同时make是一个仅用于切片,地图和通道的特殊函数.有关vs 的更深入解释,请参阅http://golang.org/doc/effective_go.html#allocation_newmakenew
#33:
delete,喜欢append或是copy该语言的基本操作符之一.请参阅以下网址查看完整列表:http://golang.org/ref/spec#Predeclared_identifiers
#36:
是的,%v代表"价值".见http://golang.org/pkg/fmt/
#47:
试试这个:
func Pic(dx, dy int) [][]uint8 {
image := make([][]uint8, dy) // dy, not 10
for x := range image {
image[x] = make([]uint8, dx) // dx, not 10
for y := range image[x] {
image[x][y] = uint8(x*y) //let's try one of the mentioned
// "interesting functions"
}
}
return image
}
Run Code Online (Sandbox Code Playgroud)
#59:
语言的设计和约定鼓励您明确地检查它们发生的错误(与其他语言中抛出异常并有时捕获它们的约定不同).在某些情况下,这会使Go代码变得冗长,但幸运的是,您可以使用一些技术来最小化重复的错误处理.
(引自错误处理和Go)