Python 之禅指出“特殊情况还不足以特殊到违反规则。”它还指出“显式优于隐式”。在我的个人代码中,我对以下内容没有问题:

x: Int = 5
y: StringLiteral = "Howdy Howdy!"
var z : String = str(x) + " " + y
print(z)

许多人认为,如果可以推断类型,则无需编写它。主要的例外是当它是一个像联合体时var x: Int | None = None,然后添加类型声明。我相信,在任何地方都有类型声明会更简单,这样就不会出现“违反规则”的“特殊情况” 。再说一遍,“明确的比隐含的要好。”我认为反对这一点的主要论点是“简单胜于复杂”这句话。通常有人声称更多的类型注释会增加复杂性,但我个人不同意 YMMV 。它不一定会使其更具可读性,但在我看来,它也不会降低它的可读性。你怎么看?有什么我应该考虑的经历吗?

这种争论在 Go 社区中确实很常见,因为该语言在隐式类型方面具有相似的易用性。我发现添加显式类型声明有点冗长,但它对于调试类型 tom -foolery确实很有帮助。就像当我认为我正在制作一个(使用 Mojo 术语)但实际上我正在制作一个.只需声明类型通常就能解决编译器麻烦的小意外时刻。

OTOH ,我想不出有一次我会为这样清晰的事情做风格详细的分配: List ListLiteral x z

var x: Bool = True
var z = True

简单的 Bools 中没有太多打字错误的空间。🙂