开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 13天,点击查看活动详情
防御性编程的好处和坏处
防御性编程的好处和坏处 坏处是防御性编程到了后期造成代码不敢动,首先太过防御,从技术角度考虑出现问题不好排查,只能一行一行去catch,排查效率低而且对于有些case来说确实复现不了,就会造成在做无用功
从用户体验角度考虑 对于用户而言 防御性编程产生的效果无非就是白屏或者没有反应。这个表现和业务直接挂掉对于用户来说只是程度不同而已,本质上来说都是业务不可用。
java要求抛出异常的方法快被调用必须显示声明try或者继续向上抛。 但kotlin不需要。 而且java中有些catch的逻辑是由于下层sdk设计的不合理抛出很多不是由业务去承担处理的异常,这时候也需要放置空的catch块。 有好有坏,对于kotlin来说给开发留了很大的口子需要业务去处理
KT脚本实现原理
kotlin脚本内部不要求使用类,某个函数不需要强制规划到一个类里面。 脚本中的代码:独立代码直接按顺序执行; 具体实现原理时kotlin会自动根据脚本文件名创建类并将方法移动到构造方法中(独立方法抛异常打印stacktrace会发现是类名是脚本文件名,出错方法是init方法构造方法)
只有当函数体是单表达式而不是块时,kotlin才会推断函数的返回类型;而且在单表达式中会在编译期间就进行类型推算,且不能在表达式内部使用return(只有块语句才允许使用return,表达式不让)
独立函数
函数可以单独抽出来写成一个文件,不需要先创建类在创建方法,而且对于重用方法来说不需要用静态方法去取悦java的面向对象语法 也就是可以这么理解:对于kotlin来说,函数是可以独立的
语句不返回东西并且涉及到状态的改变也就是语句会有副作用,如果想要返回一个结果就必须在语句内部声明一个局部变量用来操作。 表达式不是,表达式会返回结果,并且没有副作用。