英文:
How to declare interface array in Go
问题
我在创建一个接口数组的简单任务中遇到了困难。以下是我的代码:
var result float64
for i := 0; i < len(diff); i++ {
result += diff[i]
}
result = 1 / (1 + math.Sqrt(result))
id1 := user1.UserId
id2 := user2.UserId
user1.Similar[id2] = [2]interface{id2, result}
user2.Similar[id1] = [2]interface{id1, result}
其中result是一个float64类型,user*.UserId是一个int类型。
我的错误信息是:
语法错误:接口类型中不允许使用名称列表
英文:
I am having difficulty in what should be a trivial task of creating an interface array. Here is my code,
var result float64
for i := 0; i < len(diff); i++ {
result += diff[i]
}
result = 1 / (1 + math.Sqrt(result))
id1 := user1.UserId
id2 := user2.UserId
user1.Similar[id2] = [2]interface{id2, result}
user2.Similar[id1] = [2]interface{id1, result}
result is a float and user*.UserId is an int.
My error message is
syntax error: name list not allowed in interface type
答案1
得分: 7
例如,
package main
import (
"fmt"
)
func main() {
x, y := 1, "@"
a := [2]interface{}{x, y}
fmt.Println(a)
b := [2]interface{}{0, "x"}
fmt.Println(b)
}
输出:
[1 @]
[0 x]
英文:
For example,
package main
import (
"fmt"
)
func main() {
x, y := 1, "@"
a := [2]interface{}{x, y}
fmt.Println(a)
b := [2]interface{}{0, "x"}
fmt.Println(b)
}
Output:
[1 @]
[0 x]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论