java为什么没有输入_java – 为什么Kotlin没有明确的输入?

我对此很好奇,为什么kotlin设计师认为在Kotlin中放弃显式输入是个好主意?

对我来说,使用Java(或任何其他强类型语言)编写显式键入并不是一种“痛苦”:所有IDE都可以帮助我自动键入我的变量.

它增加了对代码的深刻理解(这就是为什么我不喜欢弱类型语言,我不知道我正在处理什么样的变量).

此外,这是我的主要问题,它使代码更容易出错.

示例:

Java:很容易识别为String,一切都很好

String myPrice = someRepository.getPrice(); // Returns a String

myTextView.setText(myPrice);

Java:使用setText()轻松识别为int,代码异味

int myPrice = someRepository.getPrice(); // Returns an int, code smell !!

myTextView.setText(String.valueOf(myPrice)); // Problem avoided

科特林:????

val myPrice = someRepository.getPrice(); // What does it return ?

myTextView.setText(myPrice); // Possible hidden bug with setText(@StringRes int) instead of setText(String) !!

在Kotlin中没有明确的输入是Kotlin imo的最大缺点.我试着理解这个设计选择.

我并不是真的在寻找“修补程序”来修复示例/避免出现代码异味,我试图了解删除显式类型背后的主要原因.它必须不仅仅是“打字更少/更容易阅读”.它只删除了几个字符(一个仍然需要写val / var),而Kotlin中的显式输入无论如何都会增加一些字符…

对我来说,没有显式输入的静态类型是处理隐藏的错误/意大利面错误的最坏情况:如果一个类(让我们说“存储库”)改变它返回类型(例如从String到int).使用显式类型,在调用“Repository”的类中编译将失败.如果没有显式类型,编译可能不会失败,错误类型的变量可能会“遍历”类并因类型而改变类的行为.这是危险的,未被发现.

修复很容易;显式键入变量.但这就是我们所说的Kotlin,这是一种为代码高尔夫球手制作的语言:人们不会明确地输入他们的变量,因为在kotlin中花费的时间比turtle-java要多得多.哎呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值