强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
- 解决 – 如何使用内容types:应用程序/ JSON,与节点JS上的请求+ restfulapi
- 在全新的快递项目doctype 5`上出现错误,您现在必须使用`doctype html`
- 将自定义types的数组传递给来自node-pg和SQL注入的postgres函数
- 如何使用node.js amqp模块将AQMP消息缓冲区转换为JSON对象?
- FlowType包装获取而不会丢失默认types的注释
- 检查node.js中的实际文件types
- 将64Bit Double转换为32Bit浮点Node.Js
- 从打字稿模块自动生成index.d.ts,types定义
- TypeOrm – OneToOne连接更新尝试删除相关logging