如何修复Golang中单值上下文错误的多值?

如何修复Golang中单值上下文错误的多值?,go,Go,这会引发一个错误: 单值上下文中的多个值 为什么会发生这种情况?我们如何修复它?fmt.Scan返回两个值,您的代码在调用它时只需要一个值 扫描签名函数Scana…接口{}n int,err error首先返回扫描项目的数量,最后返回一个错误。错误位置的nil值表示没有错误 按如下方式更改代码: package main import "fmt" func main() { fmt.Println("Enter a number: ") var addendOne int =

这会引发一个错误:

单值上下文中的多个值

为什么会发生这种情况?我们如何修复它?

fmt.Scan返回两个值,您的代码在调用它时只需要一个值

扫描签名函数Scana…接口{}n int,err error首先返回扫描项目的数量,最后返回一个错误。错误位置的nil值表示没有错误

按如下方式更改代码:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}

如果你真的想忽略这些错误,你可以使用空白标识符::

Scan返回两个值,您的代码在调用它时只需要一个值

扫描签名函数Scana…接口{}n int,err error首先返回扫描项目的数量,最后返回一个错误。错误位置的nil值表示没有错误

按如下方式更改代码:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}

如果你真的想忽略这些错误,你可以使用空白标识符::

扫描返回两个值,而您只捕获了一个。 您应该像这样捕捉错误:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}
如果要忽略不推荐的错误值!,这样做:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}
扫描返回两个值,而您只捕获了一个。 您应该像这样捕捉错误:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}
如果要忽略不推荐的错误值!,这样做:

package main
import "fmt"

func main() {
    fmt.Println("Enter a number: ")
    var addendOne int = fmt.Scan()
    fmt.Println("Enter another number: ")
    var addendTwo int = fmt.Scan()
    sum := addendOne + addendTwo
    fmt.Println(addendOne, " + ", addendTwo, " = ", sum)
}
addendOne, _ := fmt.Scan()
addendTwo, err := fmt.Scan() 
if err != nil {
  // handle error here
}

因为Scan返回int和error,所以您应该使用:=语法,这是声明和初始化的缩写

addendTwo, _ := fmt.Scan() 
来自golang fmt文件:

函数a…接口{}n int,错误


因为Scan返回int和error,所以您应该使用:=语法,这是声明和初始化的缩写

addendTwo, _ := fmt.Scan() 
来自golang fmt文件:

函数a…接口{}n int,错误


有几十个关于单值上下文错误中多个值的问题,所有这些问题的答案基本相同。请快速搜索一下,看看你是否能找到答案。“阿德里安,我只是一个Golang的初学者,我一开始就不懂任何代码。考虑把解释语言的基本概念和语法的工作做得很好。单值上下文错误中的值,所有这些错误的答案基本相同。请快速搜索一下,看看你是否能找到答案。“阿德里安,我只是Golang的一个初学者,我一开始就不懂任何代码。考虑把解释语言的基本概念和语法的工作做得很好。