golang 오류 수정 방법: 함수 인수에서 'x'(유형 T)를 U 유형으로 사용할 수 없습니다.
Go에서 코드를 작성할 때 'x'(유형 T)를 유형으로 사용할 수 없는 경우가 있습니다. 함수 인수에 U가 있습니다." 이러한 컴파일 오류가 발생했습니다. 이 오류는 함수 호출에서 전달된 매개변수 유형이 함수에서 선언한 매개변수 유형과 일치하지 않기 때문에 발생합니다. 이 문서에서는 몇 가지 일반적인 상황과 이 오류를 해결하는 방법을 설명합니다.
다음은 샘플 코드입니다.
package main import "fmt" func printNumber(num int) { fmt.Println(num) } func main() { var str string = "123" printNumber(str) // 报错:"cannot use 'str' (type string) as type int in argument to printNumber" }
위 코드에서 printNumber
함수는 int 유형의 매개변수를 수신할 것으로 예상하지만 main
에 문자열이 전달됩니다. 코드> 함수 유형 매개변수. 이 오류를 수정하려면 전달된 매개변수 유형이 함수에서 선언한 매개변수 유형과 일치하는지 확인해야 합니다. printNumber
期望接收一个int类型的参数,但在main
函数中传递了一个string类型的参数。为了修复这个错误,我们需要确保传递的参数类型与函数声明的参数类型相匹配。
修复方法1:将参数类型转换为函数期望的类型。比如使用strconv.Atoi
函数将字符串转换为整数。
package main import ( "fmt" "strconv" ) func printNumber(num int) { fmt.Println(num) } func main() { var str string = "123" num, err := strconv.Atoi(str) if err != nil { fmt.Println(err) return } printNumber(num) }
修复方法2:如果确定字符串中的内容可以转换为整数,可以直接使用strconv.Atoi
函数进行转换,并将结果直接传递给函数。
package main import ( "fmt" "strconv" ) func printNumber(num int) { fmt.Println(num) } func main() { var str string = "123" num, _ := strconv.Atoi(str) printNumber(num) }
User
类型的参数,但你却传递了一个Admin
类型的参数时,也会出现此错误。下面是一个示例代码:
package main import "fmt" type User struct { Name string Age int } func printUserInfo(user User) { fmt.Printf("Name: %v, Age: %v ", user.Name, user.Age) } type Admin struct { User Role string } func main() { admin := Admin{ User: User{Name: "Tom", Age: 32}, Role: "Administrator", } printUserInfo(admin) // 报错:"cannot use 'admin' (type Admin) as type User in argument to printUserInfo" }
上面的代码中,printUserInfo
函数期望接收一个User
类型的参数,但在main
函数中传递了一个Admin
类型的参数。为了修复这个错误,我们需要确保传递的参数类型与函数声明的参数类型相匹配。
修复方法:可以使用Admin
类型中的User
strconv.Atoi
함수를 사용하세요. package main import "fmt" type User struct { Name string Age int } func printUserInfo(user User) { fmt.Printf("Name: %v, Age: %v ", user.Name, user.Age) } type Admin struct { User Role string } func main() { admin := Admin{ User: User{Name: "Tom", Age: 32}, Role: "Administrator", } printUserInfo(admin.User) }
strconv.Atoi
함수를 직접 사용하여 변환하고 결과를 함수에 직접 전달할 수 있습니다. 🎜rrreeeUser
유형의 매개변수를 예상하지만 Admin
유형의 매개변수를 전달하는 경우에도 발생합니다. 🎜🎜🎜다음은 샘플 코드입니다. 🎜rrreee🎜위 코드에서 printUserInfo
함수는 User
유형의 매개변수를 수신할 것으로 예상하지만 main
Admin
유형의 매개변수가 함수에 전달됩니다. 이 오류를 수정하려면 전달된 매개변수 유형이 함수에서 선언한 매개변수 유형과 일치하는지 확인해야 합니다. 🎜🎜Fix: Admin
유형의 User
필드를 함수 매개변수로 사용할 수 있습니다. 🎜rrreee🎜위 방법을 사용하면 Go에서 프로그래밍하는 동안 발생하는 "함수 인수에서 'x'(유형 T)를 유형 U로 사용할 수 없습니다." 오류를 수정할 수 있습니다. 이러한 메서드는 전달된 매개변수 유형이 함수에서 선언된 매개변수 유형과 일치하는지 확인하여 코드가 올바르게 컴파일되고 실행되도록 합니다. 🎜위 내용은 golang 오류 수정 방법: 함수 인수에서 'x'(T 유형)를 U 유형으로 사용할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!