登录
首页 >  Golang >  Go问答

自定义类型和原始类型的区别

来源:stackoverflow

时间:2024-04-10 14:36:30 170浏览 收藏

一分耕耘,一分收获!既然都打开这篇《自定义类型和原始类型的区别》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我对 go 类型有一个很快的疑问。

type mystr string
var s1 mystr = "abc"
var s2 string = "abc"

这里 s1 始终采用字符串类型,与 s2 类似。我的问题是,为什么在 go 中允许定义这样的类型(原始类型)。当我什至无法比较 s1 和 s2 时

if s1 == s2 // compilation error

这种场景的用例是什么?


解决方案


它与其他编程语言中的扩展方法类似。您可以将自己的行为添加到您的类型中(但不能在标准类型中添加):

type MyStr string

func (s MyStr) Length() int {
    return len(string(s))
}

func main() {
    s := MyStr("hello")
    fmt.Println(s.Length())
}

本篇关于《自定义类型和原始类型的区别》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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