登录
首页 >  Golang >  Go问答

结构体中指针类型相对于对象类型的用法是什么?

来源:stackoverflow

时间:2024-04-13 20:36:33 497浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《结构体中指针类型相对于对象类型的用法是什么?》,涉及到,有需要的可以收藏一下

问题内容

我正在运行休息服务。 api 调用将填充用户通过 rest 调用传递的以下结构。

type struct Body{
    param1 *string
    param2 string
}

现在我可以在我的处理函数中处理这个请求。作为处理函数中错误处理的一部分,我将执行以下操作,

对于 param1(这是一个指针),我需要检查指针是否不为 nil 并且字符串的长度不应该为 0。 对于 param2 我只需要检查字符串长度是否不应该为 0

使用字符串对象将使我使用更少的检查并编写干净的代码。那么为什么大多数人在这种情况下都使用指针。


解决方案


在Go语言中,声明没有初始值的变量将被设置为零值而不是null值。

  • 所有整数类型均为 0
  • 字符串的“”(空字符串)
  • nil 用于接口、切片、指针

因此,当您需要区分 null 值和零值时,您需要使用 pointers,因为 pointers 零值是 nil。 Golang 不允许 null,它的版本是 nil,而某些语言则允许。

示例:

在像MySql这样的数据库中,“”(空字符串)和0对于string和int类型来说不是空值。如果您需要在数据库中以不同的方式保存“”(空字符串)和空值的字符串值,则需要在请求主体结构中使用字符串指针。

到这里,我们也就讲完了《结构体中指针类型相对于对象类型的用法是什么?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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