首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  Android

kotlin 的扩展方法真的太神了。

  •  
  •   pdog18 · 2018-03-18 11:11:40 +08:00 · 6835 次点击
    这是一个创建于 637 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚看 kotlin 两天,其他一些我顶多以为是语法糖或者将某些错误提前到编译期。 但是这个语法糖真的是太溜了,还可以对Int类型直接操作,我想要写dp的话 直接用 16.dp()就可以了,简直不要太舒服。

    另外吐槽下泛型,Java 的各种 extends,super 的泛型怎么写还没搞明白,复杂一点的泛型每次都要百度 ,来学 kotlin 的泛型我估计要完全搞乱了

    第 1 条附言  ·  2018-03-18 22:06:08 +08:00

    又看到了 inline关键字,居然还可以提高性能,好溜哇

    20 回复  |  直到 2018-03-20 10:53:30 +08:00
        1
    secondwtq   2018-03-18 11:13:57 +08:00
    语法糖比较 trivial 也就算了,“将某些错误提前到编译期” 在楼主的眼中也那么的 trivial 么?
        2
    ian19znj   2018-03-18 11:18:39 +08:00 via iPhone   ♥ 4
    c#扩展方法了解一下
        3
    jackyzy823   2018-03-18 11:25:27 +08:00
    D 语言的 Uniform Function Call Syntax (UFCS) 了解一下 (算了太小众了
        4
    pdog18   2018-03-18 11:32:45 +08:00
    @secondwtq 新手嘛,现在感觉不强烈嘛,哈哈
        5
    pdog18   2018-03-18 11:33:03 +08:00
    你们讲的这些都不知道哇
        6
    gs139   2018-03-18 11:45:03 +08:00 via Android
    跟 js,ruby 学的,这种特性尽量别用,容易污染
        7
    aminic   2018-03-18 11:45:40 +08:00 via Android   ♥ 1
    请 C#程序员不要吐槽
        8
    ian19znj   2018-03-18 11:55:03 +08:00 via iPhone
    @aminic c#被鄙视惯了,难得傲娇一下,见谅
        9
    gam2046   2018-03-18 11:59:42 +08:00
    确实,虽然是语法糖,但是糖确实好吃。

    扩展方法用于做一些工具方法感觉挺方便的。例如

    fun Any.toJsonString()
    fun String.toJsonObject()

    不过关于泛型,kotlin 有一些不同(也不能算坑吧),比如 Map<String>和 Map<Int>并不是一个类型,也不能转换,虽然 Java 在编译后会进行类型擦除,这两个在运行时期是一样的,但是 kotlin 在编译时期的检查就是认为不一样。
        10
    pdog18   2018-03-18 12:08:08 +08:00
    `fun Any.toJsonString() ` 这个感觉很甜啊。大佬大佬还有哪些
        11
    AntiGameZ   2018-03-18 13:01:24 +08:00
    每次看到这种帖子的时候,我内心都想骂一下微软的不争气。
        12
    otakustay   2018-03-18 13:16:53 +08:00   ♥ 1
    根据玩 C#的经验,如果第三方库喜欢定义扩展方法,多起来冲突了还是很烦人的
        13
    lizhuoli   2018-03-18 13:29:30 +08:00 via iPhone   ♥ 1
    C# D Objective-C Swift Ruby 程序员表示你这不是语言第一课的知识吗
        14
    shnoparty   2018-03-18 13:33:52 +08:00 via iPhone
    Kotlin 出的各种 DSL 了解一下
        15
    wellsc   2018-03-18 13:37:54 +08:00 via iPhone
    很 Ruby,但我不喜欢
        16
    bobuick   2018-03-18 13:51:57 +08:00   ♥ 1
    最近看 scala,kotlin 这种专门发明用来处处针对 java 的语言,也是可爱的很 =。=
        17
    HangoX   2018-03-18 23:22:49 +08:00 via Android
    你去看一下 groovy 会更惊讶吧,当然还有 swift
        18
    AngelCriss   2018-03-18 23:58:34 +08:00
    @jackyzy823 不不不,Rust 也有
        19
    iFlicker   2018-03-19 00:40:51 +08:00 via Android
    groovy 很神奇的
        20
    mmdsun   2018-03-20 10:53:30 +08:00
    kotlin 很多地方参考了 c# 我看 kotlin 文档看不懂 都去 msdn 查资料 滑稽
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2167 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
    ♥ Do have faith in what you're doing.