已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
2天前关闭。
Improve this question
编辑:* 虽然我给出的例子发生在main
中并且是硬编码的,但这是一个非常简单的例子。
- 在真实的世界中,不良数据可能随时从多种来源进入:Web表单、命令行、配置文件等 *
- 请帮助我解决一般问题,而不是我非常狭窄的示例中的代码。
给定此代码:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
alice := Person{Name: "Alice", Age: 17}
fmt.Printf("alice struct is %v", alice)
}
一切都很好,因为名称是一个字符串,年龄是一个int。
但如果出了什么问题,我们这样做:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
bob := Person{Name: 99, Age: "Bob"}
fmt.Printf("bob struct is %v", bob)
}
然后程序无法构建,恐慌等。
如何正确处理可能出现的错误?
我做不到
bob,err := Person{Name: 99, Age: "Bob"}
并在继续之前检查错误。
1条答案
按热度按时间mv1qrgav1#
虽然没有强制执行,但使用构造函数方法被认为是一个很好的实践,该方法用于返回对象,并且可以在其中包含验证逻辑。
举例来说:
这样你就可以