scala断言和参数检查


scala 的参数检查与断言: require, assert, assume 和 ensuring

总结:

require() 方法用在对参数的检验上,不通过则抛出 IllegalArgumentException

assert()assume() 方法在对中间结果或私有方法的参数进行检验,不成功则抛出 AssertionError 异常

ensuring() 方法在返回结果的分支的花括号同一行上进行断言. ensuring 是用来对返回结果行断言的,所以它必须尾随返回结果处,nsuring 中用 “_” 作为当前返回结果对象的占位符

ensuring应该放在返回结果分支的花括号后面,如果没有花括号,应该造花括号让它跟,或是写在函数后最后那个花括号的后面

要使用ensuring(), 则必须有{}


private def widen(w: Int): Element = 
    if(w <= width)
        this
    else &#123;
        val left = elem(' ', (w - width)/2, height)
        var right = elem(' ', (w - width -left.width, height)
        left beside this beside right
    &#125; ensuring (w <= _.width) 
private def widen(w: Int): Element = &#123;
    if(w < width)&#123;
        this
    &#125; ensuring(_.width > 10) //这里欲断言返回结果 this,所有两 if 后的花括号不能省略
    else &#123;
        val left = elem(' ', (w - width)/2, height)
        var right = elem(' ', (w - width - left.width, height)
        left beside this beside right
    &#125; ensuring(w <= _.width) //断言的是上一行 left beside this beside right 结果
&#125; ensuring((w + _.width) > 100) //ensuring 断言可以放在方法体外了,用来断言最终的结果

参考:

参考


作者: jdi146
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 jdi146 !
评论
评论
  目录