刚看 kotlin 两天,其他一些我顶多以为是语法糖或者将某些错误提前到编译期。 但是这个语法糖真的是太溜了,还可以对Int类型直接操作,我想要写dp的话 直接用 16.dp()就可以了,简直不要太舒服。
另外吐槽下泛型,Java 的各种 extends,super 的泛型怎么写还没搞明白,复杂一点的泛型每次都要百度 ,来学 kotlin 的泛型我估计要完全搞乱了

刚看 kotlin 两天,其他一些我顶多以为是语法糖或者将某些错误提前到编译期。 但是这个语法糖真的是太溜了,还可以对Int类型直接操作,我想要写dp的话 直接用 16.dp()就可以了,简直不要太舒服。
另外吐槽下泛型,Java 的各种 extends,super 的泛型怎么写还没搞明白,复杂一点的泛型每次都要百度 ,来学 kotlin 的泛型我估计要完全搞乱了
又看到了 inline关键字,居然还可以提高性能,好溜哇
1 secondwtq Mar 18, 2018 语法糖比较 trivial 也就算了,“将某些错误提前到编译期” 在楼主的眼中也那么的 trivial 么? |
2 ian19znj Mar 18, 2018 via iPhone c#扩展方法了解一下 |
3 jackyzy823 Mar 18, 2018 D 语言的 Uniform Function Call Syntax (UFCS) 了解一下 (算了太小众了 |
5 pdog18 OP 你们讲的这些都不知道哇 |
6 gs139 Mar 18, 2018 via Android 跟 js,ruby 学的,这种特性尽量别用,容易污染 |
7 aminic Mar 18, 2018 via Android 请 C#程序员不要吐槽 |
9 ntdll Mar 18, 2018 确实,虽然是语法糖,但是糖确实好吃。 扩展方法用于做一些工具方法感觉挺方便的。例如 fun Any.toJsonString() fun String.toJsonObject() 不过关于泛型,kotlin 有一些不同(也不能算坑吧),比如 Map<String>和 Map<Int>并不是一个类型,也不能转换,虽然 Java 在编译后会进行类型擦除,这两个在运行时期是一样的,但是 kotlin 在编译时期的检查就是认为不一样。 |
10 pdog18 OP `fun Any.toJsonString() ` 这个感觉很甜啊。大佬大佬还有哪些 |
11 AntiGameZ Mar 18, 2018 每次看到这种帖子的时候,我内心都想骂一下微软的不争气。 |
12 otakustay Mar 18, 2018 根据玩 C#的经验,如果第三方库喜欢定义扩展方法,多起来冲突了还是很烦人的 |
13 lizhuoli Mar 18, 2018 via iPhone C# D Objective-C Swift Ruby 程序员表示你这不是语言第一课的知识吗 |
14 shnoparty Mar 18, 2018 via iPhone Kotlin 出的各种 DSL 了解一下 |
15 wellsc Mar 18, 2018 via iPhone /div> 很 Ruby,但我不喜欢 |
16 bobuick Mar 18, 2018 最近看 scala,kotlin 这种专门发明用来处处针对 java 的语言,也是可爱的很 =。= |
17 HangoX Mar 18, 2018 via Android 你去看一下 groovy 会更惊讶吧,当然还有 swift |
18 AngelCriss Mar 18, 2018 @jackyzy823 不不不,Rust 也有 |
19 iFlicker Mar 19, 2018 via Android groovy 很神奇的 |
20 mmdsun Mar 20, 2018 kotlin 很多地方参考了 c# 我看 kotlin 文档看不懂 都去 msdn 查资料 滑稽 |
21 amok Oct 20, 2020 lambda 是通过 new 匿名类实现的,inline 是为了避免 lambda 在循环之类的开销 |