强types和弱types语言之间的差异

我来自JS世界,我习惯于对可能由于input较弱而导致的所有可能的情况进行彻底的testing。 这样,在一个函数中,我检查所有传入的参数符合一些标准。

作为一个例子,在function createUser(username, id, enabled, role){}我将检查username是否是一个string, id是一个UUID, status是布尔值,angular色是一个string,必须是“pipe理员”,“用户'或'系统'。

我为这些情况创buildtesting,以确保当我传递错误的参数,testing失败,我需要find导致这个错误。 最后,我进行了很多testing,其中很多都是types检查testing。

现在,我正在使用强types的Swift。 我使用它来创build一个客户端应用程序,从NodeJS服务器端使用数据。 如果我想在Swift中创build一个类似的createUser()函数,看起来像我需要less得多的testing,因为types检查是在语言本身。

是不是认为基本上强types的语言比弱types的语言需要更less的testing呢? 在Swift中,一些testing似乎是不必要的,整个testing过程看起来更轻量级。

有什么事情可以通过以某种特定的方式使用语言结构来编写更less的testing,而且还要确保代码是正确的,并且可以按照定义通过testing?

使用可选项和非可选项,守卫,如果让我们可以节省一些零检查

例如 – Guard语句

如果没有满足一个或多个条件,则使用警戒语句将程序控制转移到范围之外。

警戒声明有以下forms:

警卫条件其他{语句}

更一般地说,阅读这个 – https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Statements.html