- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的代码:
package main
import "fmt"
func main() {
var n int
fmt.Scan(&n)
s := make([][]int, n)
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
fmt.Scanf("%d %d", &s[i][j])
}
}
s1 := 0
s2 := 0
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
if i == j {
s1 += s[i][j]
}
if i+j == n-1 {
s2 += s[i][j]
}
}
fmt.Println(s1 - s2)
}
}
输出:
panic: runtime error: index out of range
我试过了,但很 panic 。我想知道这个问题的正确解决方案。
最佳答案
这一行:
s := make([][]int, n)
创建一个 slice of slice,一个元素类型为 []int
的 slice。它创建一个包含 n
元素的 slice ,但外部 slice 的元素使用元素类型的零值初始化,类型 []int
的零值是 nil
(就像任何 slice 类型一样)。
你得到 index out of range
panic ,因为外部 slice s
的任何元素的长度都是零(因为它们没有被初始化为非 nil
slice),因此 s[i][j]
对任何 j
值都会出现 panic 。
如果要将元素分配给“内部” slice ,还必须初始化它们:
for i := 0; i < n; i++ {
s[i] = make([]int, n) // YOU ARE MISSING THIS LINE
for j := 0; j < n; j++ {
fmt.Scanf("%d %d", &s[i][j])
}
}
关于go - 如何找出围棋编程中的对角线差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36688359/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我正在对新标签进行一些试验,并且已经遇到了第一个障碍。我想我应该通过实现经典棋盘游戏 Go/Baduk/Weiqi 的一个版本来开始尝试。 我使用 moveTo() 和 lineTo() 绘制了 xy
我注意到标准 Go 库 (Y0) 中定义了用于一阶、二阶和 N 阶贝塞尔函数(Y0、Y1、Yn)的函数。我似乎无法确定这些数学函数的实际应用会使它们变得如此重要以至于包含在标准库中。 有人能帮帮我吗?
我对 kubernetes 的 golang API 有一些疑问。 我应该使用哪一个? k8s.io/client-go 还是 k8s.io/kubernetes/pkg/client?有什么区别?
我正在处理需要 big.Float 类型的数字,我需要将它们分开。我知道 big.Int 有一个 .Div() 函数,但如果我是正确的,那会截断值并失去我使用 big.Float. 相关代码 func
http://golang.org/pkg/sort/ 这是来自 Go 的例子。 // OrderedBy returns a Sorter that sorts using the less fu
我正在尝试使用两种或多种编程语言实现一个带有 float 的程序。该程序确实说了 50k 次迭代,最终将误差降低到非常小的值。 为确保我的结果具有可比性,我想确保在不同语言中使用相同精度的数据类型。请
http://play.golang.org/p/xjs-jwMsr7 我有这个功能 func (e *MyError) Error() string { return fmt.Sprint
code : type ByteSlice []byte func (p *ByteSlice) Append(data []byte) { slice := *p slice = appen
我一直在 Node 和 Go 中尝试使用 WebSockets 和 HTTP/2 库。我的基本设置是创建客户端和服务器,从服务器重复发送文件并测量时间,直到每个文件在客户端可用。 令我惊讶的是,HTT
我是一名优秀的程序员,十分优秀!