登录
首页 >  Golang >  Go问答

在没有显式定义方法的情况下,如何通过函数调用来实现自定义类型的类型转换

来源:stackoverflow

时间:2024-02-24 19:48:24 427浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《在没有显式定义方法的情况下,如何通过函数调用来实现自定义类型的类型转换》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

即使我们没有在 hello 上定义函数,我们如何才能将 hello 上的函数调用为下面的 hello(0) 呢?

package main
import "fmt"
type hello int32

func main() {
    x := hello(0)
    //converting int to int32
    fmt.Printf("Type : %T, Value: %v", x, x) //prints "Type : main.hello, Value: 0"
}

正确答案


我强烈建议您查看Types in Go

此外,要将变量设置为自定义类型,您必须手动声明它。

在本例中,应该是 var x hello = 0

package main
import "fmt"

type hello int32

func main() {
    var x hello = 0 // converting int to hello
    fmt.printf("type : %t, value: %v", x, x) // prints "type: main.hello, value: 0"
}

现在要将数字类型转换为 hello 类型,请使用 hello(x) 函数(它已经是内置的,因为您有自定义 hello 类型)

假设您有以下代码:

package main
import "fmt"

type hello int32

func main() {
    var x int = 0
    fmt.printf("type : %t, value: %v", x, x) // prints "type: int, value: 0"
}

在这里,我们将 x 转换为 hello 类型。为此,只需使用 hello(x)

package main
import "fmt"

type hello int32

func main() {
    var x int = 0
    y := hello(x) // converting 'x' to 'hello' type
    fmt.Printf("Type : %T, Value: %v", y, y) // prints "Type: main.hello, Value: 0"
}

本篇关于《在没有显式定义方法的情况下,如何通过函数调用来实现自定义类型的类型转换》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>