Kotlin way to explore https:https://cdn.v2ex.com/navatar/fec8/d47d/982_normal.png?m=1585380699 https:https://cdn.v2ex.com/navatar/fec8/d47d/982_large.png?m=1585380699 2025-08-06T17:03:20Z Copyright © 2010-2018, V2EX Kotlin 中文文档 2.2.20 版翻译完成了 tag:www.v2ex.com,2025-07-28:/t/1148241 2025-07-28T07:20:35Z 2025-08-06T17:03:20Z LiYing2016 member/LiYing2016 Kotlin 中文文档更新到了最新的 2.2.0 版
https://kotlin.liying-cn.net/

Kotlin Multiplatform 的文档添加了不少,这次来不及翻译了,等下次吧

]]> Kotlin 中文文档 2.1.20 版翻译完成了 tag:www.v2ex.com,2025-06-24:/t/1140761 2025-06-24T12:51:54Z 2025-06-25T19:38:34Z LiYing2016 member/LiYing2016 https://kotlin.liying-cn.net/

前一次没有翻译的这一章 “教程 - 协程(Coroutine)与通道(Channel)” 也补上了 https://kotlin.liying-cn.net/coroutines-and-channels.html

欢迎大家多多转发,帮忙宣传一下,谢谢

]]>
Kotlin 中文文档 2.1.0 版翻译完成了 tag:www.v2ex.com,2025-02-06:/t/1109315 2025-02-06T05:38:28Z 2025-02-15T20:49:10Z LiYing2016 member/LiYing2016 Kotlin 中文文档 2.1.0 版翻译完成了

https://kotlin.liying-cn.net/whatsnew21.html

欢迎大家多多转发,帮忙宣传一下,谢谢

]]>
Kotlin 中文文档 2.0.20 版翻译完成了 tag:www.v2ex.com,2024-12-30:/t/1101413 2024-12-30T15:24:37Z 2024-12-31T12:39:28Z LiYing2016 member/LiYing2016 Kotlin 中文文档 2.0.20 版终于赶在年内基本上翻译完成了

https://kotlin.liying-cn.net/whatsnew2020.html

欢迎大家多多转发,帮忙宣传一下,谢谢

还有几个不重要的页面没有翻译,留到下一次吧

官方文档又更新到了 2.1.0 ,下面来翻译这个版本,争取 1 月以内完成吧

]]>
MIUI API28+ActivityTransition API+kotlin 无法检测到活动,只能手动触发广播,怎么定位问题? tag:www.v2ex.com,2024-11-26:/t/1092936 2024-11-26T21:51:45Z 2024-11-27T03:27:16Z Fffys member/Fffys 两个文件,MainActivity.kt, ActivityTransitionReceiver.kt

具体内容见我的 Notion 页面

因为发现只要有其它内容就显示,Sorry,you have been blocked you are unable to access v2ex.com

接下来要怎么定位问题呢?

]]>
我老人家翻译的 Kotlin 中文文档,正在更新到最新的 2.0.20 版 tag:www.v2ex.com,2024-11-07:/t/1087574 2024-11-07T14:51:47Z 2024-11-16T08:11:59Z LiYing2016 member/LiYing2016 我老人家翻译的 Kotlin 中文文档,正在更新到最新的 2.0.20 版

一共 330 个左右的页面, 变更较少的页面已经更新完成了 还剩下变更比较多的 60 个左右页面,大约 300 页内容 争取 12 月或 1 月以内能够完成

https://kotlin.liying-cn.net/home.html

]]>
我老人家翻译的《Kotlin 语言参考文档》中文版,已经迁移到了新的 Writerside 环境 tag:www.v2ex.com,2024-10-17:/t/1081150 2024-10-17T04:26:02Z 2024-10-17T14:31:21Z LiYing2016 member/LiYing2016 我老人家翻译的《 Kotlin 语言参考文档》中文版,已经迁移到了新的 Writerside 环境

现在生成的页面风格和官方文档基本一样了,清爽了很多

欢迎访问 https://kotlin.liying-cn.net/about-translation.html

]]>
kotlin 没有受检异常真太难顶了。吐槽 tag:www.v2ex.com,2024-10-11:/t/1079399 2024-10-11T17:28:19Z 2024-10-13T17:58:50Z jeesk member/jeesk
  • 比如我要统一处理登陆失败和网络错误。
  • 如果是在 java 里面直接在方法里面抛出 2 个异常即可。 但是在 kotlin 里面必须

     val runResult = runCatching{ HttpResponse(it.isSuccessful,it.code,it.message) } if(runResult.isFailure){ when(moveFileAgain.exceptionOrNull()){ // 单独处理异常 } } // 还有写一些(这里请求成功了) if(result.code == 404){ return runResult.getOrDefault() } if(result.code == 401){ // 认证失败了 return runResult.getOrDefault() } 

    如果是在 java 里面就再简单不过了,直接定义两个异常,全局处理. 受检查异常是真的爽。 特别是在嵌套请求,1 个 api 要请求好几次的情况。

    这么说吧。 这里面的很多常见使用 java 来写代码可能要简单的多。 哪有这么多的破事。

    大佬们有什么办法处理这种事情, 我的要求就是登陆 401 或者有异常直接返回就是了。kotlin 实在是太繁琐了。

    ]]>
    屎山代码一则 tag:www.v2ex.com,2024-10-05:/t/1077764 2024-10-05T07:03:32Z 2024-10-06T10:42:14Z 300 member/300 大家都知道 Kotlin 有空安全

    var s: String 代表不为空

    var s: String? 代表可为空

    奇葩操作来了,在我接手之前,除了绝大部分的基本变量,其余所有变量都是 String?、Objxx?

    使用的时候:

    if (S != null) print(s) else throw Exption("s shouldn't be null") 

    或者:

    if (obj?.s == null) return obj!!.s 

    一开始很好奇这个脑残写法是怎么来的

    然后遇到了一个 crash 我找到根源了。我写的代码里没有用 String? ,但是却报了 NPE ,赋值的地方都查过了,不存在 null 。最终不断地调试发现每次页面 onDestory()的时候会有个反射递归地将所有变量和变量里的变量都设置成 null (说是在手动 GC…)。又因为魔改了生命周期+协程,读取变量的时候已经是 null 了,然后报错==

    ]]>
    Kotlin 2.0.0 正式版发布了 tag:www.v2ex.com,2024-05-22:/t/1042866 2024-05-22T02:55:25Z 2024-06-06T04:09:16Z fuhanfeng member/fuhanfeng

    https://kotlinlang.org/docs/whatsnew20.html

    GPT-4o 的总结:

    Kotlin 2.0 亮点

    1. K2 编译器

      • 稳定:默认用于所有平台,性能显著提升。
      • 性能:编译了 1000 万行代码,测试了 18000 开发者和 80000 项目。
    2. IDE 支持

      • 新版 Kotlin 插件捆绑在 IntelliJ IDEA 和 Android Studio 中。
    3. Gradle 集成

      • 新 DSL:用于多平台项目的实验性编译器选项配置。
      • Compose 插件:增强对 Jetpack Compose 的支持。
    4. Lambda 函数

      • invokedynamic:生成更小的二进制文件,但 lambda 不可序列化。
    5. Kotlinx-metadata-jvm 库

      • 稳定版本,提供读取和修改 JVM 二进制文件元数据的 API 。
    6. Kotlin/Native 增强

      • GC 监控:在 Apple 平台上改进垃圾回收性能监控。
      • 方法冲突解决:改进与 Objective-C 方法的冲突处理。
    7. Kotlin/Wasm

      • 支持命名导出和无符号原始类型的 @JsExport 函数。
    8. 智能类型转换

      • 改进 ifwhenwhile 块中的智能类型转换,减少手动类型断言。

    Kotlin 2.0.0 语言层面没有新特性,但是引入 K2 编译器,提高了性能。

    想问一下大家上海/杭州有用 Kotlin 做服务端的公司吗?

    ]]>
    kotlin 中的 select 到底可以 select 哪些内容啊? tag:www.v2ex.com,2024-02-01:/t/1013521 2024-02-01T13:58:02Z 2024-02-01T13:58:02Z zhwguest member/zhwguest 好多函数被 deprecated 了,有没有一个跟版本相关的官方描述?

    ]]>
    请大佬帮忙看一眼我这个注解为什么没能抑制 never used 警告? tag:www.v2ex.com,2024-01-27:/t/1012103 2024-01-27T13:25:05Z 2024-01-28T06:18:36Z zhwguest member/zhwguest @Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) @Retention(AnnotationRetention.SOURCE) @Suppress("unused", "CanBePrivate") annotation class Api

    还是被警告了

    ]]>
    我老人家翻译的《Kotlin 语言参考文档》中文版 tag:www.v2ex.com,2023-12-29:/t/1004557 2023-12-29T18:59:49Z 2023-12-30T04:03:03Z LiYing2016 member/LiYing2016 最早的版本是 2016 年 04 月,一直在更新,到 2023 年 04 月更新到了 Kotlin 1.8.0

    现在最新的 1.9.20 正在翻译,争取 1 到 2 个月内完成

    地址 https://kotlin.liying-cn.net/docs/reference_zh/about_translation.html

    代码库 https://github.com/LiYing2010/kotlin-web-site

    欢迎访问

    ]]>
    使用 compose 开发了讯飞星火认知模型桌面端应用 tag:www.v2ex.com,2023-11-29:/t/996109 2023-11-29T01:05:06Z 2023-12-07T12:56:35Z coderpwh member/coderpwh 使用 compose 开发了讯飞星火认知模型桌面端应用,目前支持 windows,mac 系统 欢迎各位使用,开源地址: https://github.com/pwh-pwh/sparkapidesk 目前功能(简洁),欢迎反馈或者 pr,也可作为学习项目 界面截图 https://github.com/pwh-pwh/sparkapidesk/raw/master/img%2Fmain.png

    ]]>
    Kotlin 的协程到底是用来干嘛的?为什么没有可 suspend 的异步 IO 函数? tag:www.v2ex.com,2023-09-13:/t/973321 2023-09-13T03:30:48Z 2023-09-13T10:55:49Z githmb member/githmb 我还以为会像 Rust 一样把 IO 函数都用异步实现一遍,结果只是把 Job 放到 Dispatchers.IO 线程池里调度,那岂不是该堵塞的还是会堵塞,如果线程池里的所有线程都被堵塞了,剩下的 Job 不就没法执行了,又不是 Go 语言那样的有栈协程可以随时中断,无栈协程就应该用 NIO 实现高 IO 吞吐量啊

    难道说 Kotlin 的协程目前的唯一作用就是让安卓同学不会把 UI 卡死吗?

    ]]>
    Kotlin 协程 Coroutine 与 Spring Boot 项目整合的最佳实践是怎样的? tag:www.v2ex.com,2023-09-11:/t/972871 2023-09-11T15:07:09Z 2023-11-16T05:24:38Z Akitora member/Akitora RT ,前几天无意间发现 Spring MVC + JDBC 经典组合中的事务与 Kotlin 协程似乎存在一定的兼容问题

    依据 Spring 官方文档 的说明是,Spring 目前仅支持 R2DBC 事务与 Kotlin 协程的组合,JDBC 事务需要用到 ThreadLocal ,在协程中启动事务会出问题,相关讨论和问题可以参考以下链接:

    Spring Framework GitHub Issue

    Stack Overflow 问题

    我目前对响应式框架的了解还不足,所以我想请教一下,是不是为了充分发挥 Kotlin 协程的优势,就必须将项目整体迁移到 WebFlux + R2DBC 下?

    另外,我也想了解一下,即将到来的 JDK 21 的虚拟线程和 Kotlin 协程会有怎样的关系?

    感谢各位的帮助与意见。

    ]]>
    谷歌出品 kotlin 入门教程 tag:www.v2ex.com,2023-07-24:/t/959210 2023-07-24T05:54:42Z 2023-08-05T21:42:33Z VforVendetta member/VforVendetta https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-1?hl=zh-cn#codelab-https://developer.android.com/codelabs/basic-android-kotlin-compose-variables

    ]]>
    kotlin 源代码数据集 tag:www.v2ex.com,2023-06-23:/t/950972 2023-06-23T00:44:44Z 2023-06-23T02:41:44Z bigtang member/bigtang
    如果有大量的 kotlin 源代码可参考,这个问题会大有改观。

    BigCode 数据集是一个开放的科学合作项目,旨在负责任地训练大语言模型,以应用于编码领域。该数据集包含了来自 Stack Exchange 平台上的问题和答案,包括 StackOverflow 的编程话题下的问题和答案。BigCode 数据集可以用于许多自然语言处理任务,如代码补全、代码摘要、代码搜索等。此外,BigCode 数据集还可以用于研究代码的语义和结构,以及代码的演化和变化。BigCode 项目中包含了 StarCoder 、The Stack 和 SantaCoder 等工件,其中 StarCoder 是用于编码的最先进的语言模型,The Stack 是可用的最大的预训练数据集,包含宽容的代码,而 SantaCoder 是一个参数达到 1.1B 的编码模型。

    BigCode 中就有大量的 kotlin 源码,数量是 13G, 375 万个 kt 文件.
    下载方法: https://huggingface.co/datasets/bigcode/the-stack/tree/main/data
    打开后,点击底部的 Load more files, 直到看见 kotlin, 点击 kotlin
    就会看到有 15 个 parquet 文件下载
    可以用 Python 对 parquet 文件解压:

    import pyarrow.parquet as pq
    table = pq.read_table('input.parquet')
    table.to_pandas().to_csv('output.csv')

    这样你就可以在本地检索 kotlin 源代码了,
    在线搜索:源代码搜索网站 www.tanglib.com 提供了本 kotlin 源代码数据集在线全文检索。 ]]>
    KMM 中目前最成熟,最推荐的 shared viewmodel 方案是什么. tag:www.v2ex.com,2023-06-09:/t/947375 2023-06-09T09:17:37Z 2023-07-03T07:24:43Z ScorpioNeal member/ScorpioNeal 据我所查,UI 层, 正在逐步统一, 比如近期推出的 Compose Multiplatform, VM 层貌似官方没有推出自己的解决方案.

    比如在 Compose Multiplatform 中提供的的例子都是引用三方的,如 MVIKotlin( 见 https://github.com/JetBrains/compose-multiplatform/blob/master/examples/todoapp/common/main/build.gradle.kts)

    所以 VM 层现在最推荐的解决方案是什么样的?

    ]]>
    ​ Java /kotlin AST 构建相关,悬赏 200 求解,人已经麻了 tag:www.v2ex.com,2023-03-16:/t/924685 2023-03-16T15:17:09Z 2023-03-16T22:53:00Z r1nice member/r1nice 写在前面: 给出的悬赏可能在各位眼里看起来比较可笑,但对我来说这是我两天的生活费了,网上的教程乱七八糟,目前的这个架构是在 chatGPT 设计的结构上魔改的,但出了严重的问题。如果能解决这个问题,我宁愿不吃不喝两天整 提前谢谢各位了,这项目是自己玩整的,别的都好了,就卡在一个 ast 上,虽然是自己做着玩的,但实在不想前功尽弃

    这边的游戏需要设计一个可以将效果原子化和序列化的功能,由于 function 方法不可被原子化,且我这边无法使用 lua ,因此我设计了一个能输入和输出任意类型的抽象语法树,可以对其节点进行序列化和反序列化,从而使得整个树可以序列化。当前设计如下: 有一个接口(astNode),简称基类,有一个泛型 O ,有一个 operation 方法,输出类型是 O ,传参是 map<string ,object> 在基类第二层的是结构化节点:叶子节点和枝干节点,都继承自第一层。 叶子节点只存储一个值,但不能存节点,有两个泛型,一个是记录存储属性类型的,一个是记录返回类型的。叶子节点就两种,一种记录常数(constant),比如 2x+1 里的 2 和 1. 另一种记录未知数(param),就是 2x+1 里的 x ,他会读取 operation 方法传过来的 map ,从里面找到对应的对象。 枝干节点则里面可以存储叶子节点或枝干节点。 他们有三种类型,单节点型,list 型和 pair 型,单节点的,比如提取目标怪兽的血量,里面就只需要记录一个指向怪兽的叶子节点。双节点最常见,加减乘除,operation 方法就是将两个节点 operation 的值进行运算。list 节点则是类似 in ,传入一个 list ,他从里面返回一个符合需求的值。 然后第三层就是对运算目标的类型进行定义的层。比如 equals ,有针对数字的 equals ,有针对怪物实体的 equals ,等等,这一层将他们进行封装。 第四层是封装层,这层会将所有泛型全部匹配,不会出现需要在外面输入泛型的情况。 在最外侧,会有一个 tree 实体,这个实体可以访问根节点,并进行如深度搜索或者是查找节点,替换节点之类的行为。 现在的问题是: 我想要一个方式能将这个树序列化和反序列化,并通过读取用户输入将其转换为一个树。 我最开始是打算从根节点向叶子节点进行构建,但我很快发现这个方法的不可操作性:因为我的树不是完全的二叉树,有常数和未知数两种没有子节点概念的树,他们只有一个 value ,而且由于我有三种不同类型的枝干节点,我无法使用一个统一的,写在基类里的 addNode 方法在节点生成后对子节点进行操作,我必须使用 if else 才行,这违背了泛型的初衷,也十分不灵活,所以我必须从最下方的叶子节点往上方构建。 我的打算是,先筛选出所有的叶子节点,然后像搭金字塔一样,用 1 ,2 ,list 个节点将符号构建出来,然后在这个符号上再和其他符号或者节点一起搭符号,最后搭到根节点。但是这有个问题:当我在使用如 numberEqualsNode ,这种左右节点一个是 int ,另一个也是 int ,输出是 bool 的节点,我该如何判断输入的 node 的泛型是 int ?如果不判断,那么左右节点设置泛型的意义何在? 由于 java 的泛型是在运行之后会被删掉的和注释一样的用于检查编译的东西,所以我不能直接 if node is node<int>,但那样我怎么检查这个节点?

    备注:无法换语言,或者使用 lua ,但可以使用 kotlin 和 scala 。可以改变一些设计,但不能把整个底层都给刨了。

    ]]>
    有没有 Kotlin 讲协程比较好的书籍或博客连载 tag:www.v2ex.com,2023-01-14:/t/908917 2023-01-14T08:49:46Z 2023-01-14T18:40:48Z nnegier member/nnegier 我目前只搜到一本书是专门讲协程的《深入理解 Kotlin 协程》,我估摸着我目前看不太懂,希望可以有其它的推荐,通过练习可以深入浅出自己弄一些协程框架的那种。

    ]]>
    ArrayList.set 提示 第二个参数 element 类型是 NoThing ? tag:www.v2ex.com,2022-10-08:/t/885193 2022-10-08T03:27:41Z 2022-10-08T06:12:16Z coderstory member/coderstory fun setValue(variables: Map<String, Any>, value: Any?) { val instance = operand.eval(variables) ?: throw NullPointerException("instance is null") if (instance is LogicList<*>) { instance.set(property.key.replace("[", "").replace("]", "").trim().toInt(), value) } else { throw IllegalArgumentException("变量 ${(operand as Variable).key} 不是数组") } }

    代码如上 instance.set 方法 idea 提示我第二个参数 element 是 NoThing 类型 导致我 set 方法无法调用

    Kotlin: Type mismatch: inferred type is Any? but Nothing was expected 

    直接编译 报了如上错误 instance 本身是 Any?类型的,由于做了 null 校验,所以是 Any 类型的。 LogicList 是 ArrayList 的扩展类,set 方法又 List 提供的。 这边我不太清楚要怎么改了,我本身也不太懂 kotlin 。

    ]]>
    哪些公司后端用 kotlin 写的 tag:www.v2ex.com,2022-09-27:/t/883324 2022-09-27T08:49:55Z 2022-10-30T18:55:01Z shuanglinzui member/shuanglinzui RT 不想写 java 了。

    ]]>
    kotlin 表达式引擎 tag:www.v2ex.com,2022-07-27:/t/868993 2022-07-27T04:26:02Z 2022-07-27T08:33:24Z bootvue member/bootvue
    kotlin 中怎么让预定义的字符串作为表达式执行 实现类似 js 中 eval ( "表达式" )的效果 执行完返回集合类型的结果 ]]>
    最近在看 Kotlin 别人一些代码, 看到如下的代码惊呆了 tag:www.v2ex.com,2022-06-27:/t/862539 2022-06-27T10:54:17Z 2022-07-20T12:27:45Z jeesk member/jeesk class Gallery_1(val context: Context) {
    private val contentResolver by lazy {
    context.contentResolver
    }

    //
    class Album(
    val id: String,
    val name: String,
    var count: LOng= 0,
    // ? 表示可以接受空
    var uri: Uri? = null,
    var file: File? = null
    )
    ```
    class 后面跟上小括号, 搞得我完全不知道这是什么意思了 无法是 java, scala ,go 还是 js 都没有这用法,kotlin 直接不按套路出牌, 晚上也没有查到这个 Album 是什么用法, 有没有 kotlin 的大佬能讲一讲。 ]]>
    Kotlin 的协程是真协程吗?被 b 站博主搞蒙了 tag:www.v2ex.com,2022-01-25:/t/830515 2022-01-25T07:51:28Z 2022-05-11T07:10:44Z 714105382 member/714105382 能做到类似 golang goroutine 完全不阻塞任何 os thread 进行 io 之类的访问并在得到结果后自动把协程挂载到线程继续执行?

    视频上说不能: [ [码上开学] 到底什么是「非阻塞式」挂起?协程真的比线程更轻量级吗?-哔哩哔哩] https://b23.tv/qIkWUmo

    ]]>
    有没有人能帮我解释一下,这里面的代码.如果我创建一个新窗口,按照这个逻辑,怎么显示出来 tag:www.v2ex.com,2022-01-12:/t/827831 2022-01-12T07:27:21Z 2022-01-16T17:05:00Z sucvia member/sucvia package com.example.myapplication2

    import android.os.Bundle import com.google.android.material.snackbar.Snackbar import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import android.view.Menu import android.view.MenuItem import com.example.myapplication2.databinding.ActivityMainBinding

    class MainActivity : AppCompatActivity() {

    private lateinit var appBarConfiguration: AppBarConfiguration //创建 2 个变量 private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar) val navCOntroller= findNavController(R.id.nav_host_fragment_content_main) appBarCOnfiguration= AppBarConfiguration(navController.graph) setupActionBarWithNavController(navController, appBarConfiguration) binding.fab.setOnClickListener { view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show() } } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.action_settings -> true else -> super.onOptionsItemSelected(item) } } override fun onSupportNavigateUp(): Boolean { val navCOntroller= findNavController(R.id.nav_host_fragment_content_main) return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } 

    }

    我是个萌新,刚学 Kotlin,有没有推荐群一起学习?

    按照以上代码,如果我有个按钮 id="create_button" ,按下载入 test_window.xml 窗口. test_window.xml 里面有什么讲究吗?

    ]]>
    怎么解决 public reified 函数会要求所有用到的依赖都是 public 的问题 tag:www.v2ex.com,2021-10-14:/t/807895 2021-10-14T13:43:02Z 2021-10-06T13:43:02Z Leviathann member/Leviathann 然后 这个 JsonUtils 有个反序列化方法是暴露的一个 reified 函数,然后内部调用 objectMapper 的 readValue 方法
    但问题是 reified 函数的所有依赖都必须是 public,导致这个内部的 objectMapper 也必须是 public

    虽然提交代码都有 code review 肯定没人会去在别的地方修改这个 objectmapper,但是总感觉怪怪的

    或者说 kotlin 为啥不能区分一下编译时的 private 和运行时的 private ]]>
    Result 的方式处理异常用的多吗,我看了下好像和比较受好评的 rust result 用法差不多 tag:www.v2ex.com,2021-08-03:/t/793491 2021-08-03T17:44:15Z 2021-08-04T04:55:52Z Leviathann member/Leviathann Kotlin 更换了新 logo:更加立体、更加清晰 tag:www.v2ex.com,2021-07-08:/t/788273 2021-07-08T04:21:05Z 2021-07-08T16:34:30Z zengqz member/zengqz

    详见翻译报告:重新设计的 Kotlin Logo

    ]]>
    Kotlin 1.5.20 发布了~快来看看新特性 tag:www.v2ex.com,2021-06-25:/t/785730 2021-06-25T03:57:27Z 2021-06-26T08:14:34Z zengqz member/zengqz 可以支持直接调用 java lombok 生成的代码了

    中文版新特性一览

    ]]>
    关于 kotlin 处理多个可空类型的变量的问题 tag:www.v2ex.com,2021-06-23:/t/785309 2021-06-23T06:41:22Z 2021-06-23T11:30:53Z yazinnnn member/yazinnnn class A class B val a: A? = null val b: B? = null fun foo(a: A, b: B) { println(a) println(b) } suspend fun main() { a?.let { b?.let { foo(a, b) } } }

    除了a?.let { b?.let { foo(a, b) } }这种形式和 if a!= null && b!= null,还有啥其他好办法吗?

    现在找到一个 arrow 库可以用 option dsl 实现比较漂亮的包装

    option { foo(a.bind(), b.bind()) } 
    ]]>
    求解这个 eval 函数返回值为什么是个 lambda?怎么才能拿到值? ​​​ tag:www.v2ex.com,2021-05-17:/t/777439 2021-05-17T07:24:46Z 2021-05-17T07:43:21Z coderstory member/coderstory class Min { override fun eval(variables: Map<String, Any>): Any = { val values = parameters.map { it.eval(variables) } min(values[0] as Double, values[1] as Double) } }

    这个函数啊在 IDEA 的 evaluate 中执行 返回了 Min$eval$1 类的实例 ()-> Kotlin.Double

     override fun eval(variables: Map<String, Any>): Any { val values = parameters.map { it.eval(variables) } return min(values[0] as Double, values[1] as Double) } 

    我把它改成了普通的 return 函数就没这个问题了 可以返回具体的值

    求解这种直接等于号赋值的操作 和普通函数使用 return 的操作 有什么区别

    ]]>
    kotlin lazy 形式的 grouping and mapping 应该怎么写, sequence 里 grouping + aggregate 怎么比 Java stream 还复杂得多 tag:www.v2ex.com,2021-04-17:/t/771382 2021-04-17T19:04:21Z 2021-04-17T23:04:21Z Leviathann member/Leviathann 是不是我姿势不对,有没有更好的写法?

    val kotlin = "ABCDEF".asSequence() .groupingBy { println("grouping") it.toInt() / 10 } .aggregate { _, accumulator: MutableList<String>?, element, first -> println("aggregate") if (first) { val tmp = MutableList(0) { "" } tmp.add(element.toString() + "X") tmp } else { accumulator!!.add(element.toString() + "X") accumulator } } println(kotlin) val java = "ABCDEF".toList().stream() .collect( Collectors.groupingBy( { println("java grouping"); it.toInt() / 10 }, Collectors.mapping({ println("java mapping"); it.toString() + "X" }, Collectors.toList()) ) ) println(java) 
    ]]>
    强大的 v2ex,大家擅长 Kotlin, webview 交互的伙伴,来一波 tag:www.v2ex.com,2021-04-07:/t/768559 2021-04-07T00:54:06Z 2021-04-07T03:31:49Z Trinity888 member/Trinity888 springboot kotlin 和 Java 混编, json 序列化用哪个比较好 tag:www.v2ex.com,2021-04-06:/t/768535 2021-04-06T17:28:57Z 2021-04-07T06:43:18Z Leviathann member/Leviathann 官方的 kotlinx.serialization 有坑吗 ]]> 有哪些知名 iOS 应用是纯 Kotlin 开发的? tag:www.v2ex.com,2021-03-18:/t/762949 2021-03-18T11:13:56Z 2021-03-21T06:09:33Z naoh1000 member/naoh1000 [协程递归问题请教] tag:www.v2ex.com,2020-11-18:/t/726873 2020-11-18T13:43:07Z 2020-11-18T14:41:07Z yazinnnn member/yazinnnn 拿实际业务说 以钉钉接口中的跟部门 id [ 1 ] 为开始,递归出公司详细的组织架构

     suspend fun getDepart(){ fun getSubDepart(pid):List<Department>{ val subList:List<departId> = dingApi.getSubDepartList(pid) return subList.map{ Department(it,getSubDepart(it)) } } return Department(1,getSubDepart(1)) } data class Department(val departId,val subList:List<Department>) //sublist 是下属部门列表 

    业务大概如此描述,同步状态下很简单,请问协程要怎么实现呢?

    我用 withcontext ()包裹追钉钉 api,结果 build 时无法通过,报 call to 'resume' before 'invoke' with coroutine

    请问有大佬能帮助一下吗?

    ]]>
    kotlin 打包问题 tag:www.v2ex.com,2020-10-14:/t/715050 2020-10-14T17:17:56Z 2020-10-14T22:16:56Z ghz666 member/ghz666 kotlin 萌新一枚,最近在用 mirai 做 qq 机器人,碰上一个打包的问题。前边加上 susbend 之后就不能打包了。。。。去掉之后就又能了。有没有大佬知道咋回事? 截图:


    ]]>
    求推荐 kotlin 安卓开发教程 tag:www.v2ex.com,2020-10-04:/t/712514 2020-10-04T10:44:08Z 2021-10-11T04:06:39Z darksheep9527 member/darksheep9527 求助正文

    楼主是一枚菜鸡大学生,安卓开发的老师决定从这学期开始用 kotlin 教安卓开发 楼主安卓开发和 kotlin 都没接触过,所以想自己找一份教程课外学习,求有了解的大佬介绍一份比较新的

    因为被一本老书折腾了好久

    菜鸡吐槽

    搜到了很多人安利的 Kotlin for android developers 的中文版 然后发现版本太老了,里面用的 anko 库现在已经废弃了但是也还能用 RecyclerView 库已经从 7 变成了安卓 x

    val forecastList=findViewById(R.id.forecast_list) as RecyclerView 

    改用 x 之后,findviewbyid 又报错

    Inspection info: This inspection reports findviewByld calls with type casts which can be converted to findViewByld with a type parameter from Android 8.0(API level 26)

    image-20201004183420429

    ]]>
    Kotlin 1.4 Released tag:www.v2ex.com,2020-08-18:/t/699161 2020-08-18T01:24:30Z 2020-08-18T12:25:23Z 300 member/300 https://blog.jetbrains.com/zh-hans/kotlin/2020/08/kotlin-1-4-released-with-a-focus-on-quality-and-performance-zh/

    ]]>
    请教一下 kotlin json 序列化及配合 data class 的正确姿势 tag:www.v2ex.com,2020-08-06:/t/696198 2020-08-06T08:21:15Z 2020-12-08T06:50:08Z yazinnnn member/yazinnnn jackson 可以直接 decode jsonString 成 Any 需要自己强转成 jsonObject 或者 jsonArray 可以转成普通 class 实体,不能转成 data class

    Fastjson 情况类似

    网上搜了一下 jackson 需要引入 kotlin module 和大量注解配合才能使用 data class

    请问有啥方便的轮子可以用么?

    ]]>
    各位公司项目后端有用 Kotlin + Spring 的吗, DB 层框架选用的什么? tag:www.v2ex.com,2020-07-20:/t/691633 2020-07-20T08:41:14Z 2020-09-04T21:24:02Z lululau member/lululau JPA? Hibernate? MyBatis? Exposed?

    ]]>
    慌的一批, Kotlin 这么优雅的语言为什么不火呢 tag:www.v2ex.com,2020-07-13:/t/689648 2020-07-13T09:10:17Z 2020-09-07T12:24:42Z iseki member/iseki 真是,两年没写 Java 了,之前写了两礼拜 Java 没给我急死,手速远远跟不上脑子的速度。。。 但是看看社区,有一种不温不火的感觉呢,慌······

    ]]>
    Kotlin 如何检测所有 lateinit 的 field 是否初始化 tag:www.v2ex.com,2020-07-07:/t/688067 2020-07-07T15:49:06Z 2020-07-07T19:14:41Z fanck0605 member/fanck0605 在 java 里,我一般用反射遍历所有 Field,并查看是否为 null

    Example example = new Example(); // 这里解析一些文本并给 example 的成员变量赋值 // do something... // 检测是否所有变量都被初始化 Field[] fields = Example.class.getFields() for (Field field : fields) { try { Object o = field.get(example); if (o == null) { throw new Exception(); } } catch (IllegalAccessException ignored) { } } 

    kotlin 代码中,所有成员变量都用了 lateinit 修饰符, 那有没有类似的方法可以,检测所有变量是否被 initialized

    ]]>
    初入 kotlin,源码找不见求教 tag:www.v2ex.com,2020-06-21:/t/683450 2020-06-21T03:56:34Z 2020-11-04T07:54:40Z q13859601 member/q13859601 fun main() { val numbersMap = mutableMapOf("one" to 1, "two" to 2, "three" to 3, "threeAgain" to 3) numbersMap.keys.remove("one") println(numbersMap) numbersMap.values -= 3 println(numbersMap) numbersMap.values.remove(3) println(numbersMap) }

    对于numbersMap.values -= 3 这个-=的运算符重载的源码在哪里呢,难道是 native 么 ide 里面点了半天都是 MutableCollection 的 minusAssign 方法,但是并不清楚这个内部的 values:MutableCollection 的-=的重写如何关联到 map 的 entry 的删除的

    求大神指导:D

    ]]>
    libcore.reflect.parameterizedtypeimpl cannot be cast to Java .lang.clas 这个错误 我真是莫名其妙 tag:www.v2ex.com,2020-05-20:/t/673809 2020-05-20T15:40:22Z 2020-05-22T09:33:24Z honglei92 member/honglei92 1java 方法 public void getUploadConfig(String uploadJson, final RxResultCallback<TMResponse> callBack)

    2TMRespnse 类 是泛型类 public class TMResponse<T>

    3 在 kotlin 中使用 getUploadConfig("111", object : RxResultCallback<TMResponse<Any>>()

    就报 上面的错,object : RxResultCallback<TMResponse<Any>>() 这里应该怎么写 呢?

    ]]>
    Kotlin 匿名函数的问题 tag:www.v2ex.com,2020-04-15:/t/662901 2020-04-15T17:00:35Z 2020-04-15T00:03:11Z TxcA member/TxcA val numbers1 = mutableListOf(0, 1, 2, 3, 4) val numbers2 = mutableListOf(5, 6, 7, 8, 9) println("numbers : ${numbers1.zip(numbers2) { a, b -> a + b }}") println("numbers add {} : ${numbers1.zip(numbers2) { a, b -> { a + b } }}") //println //numbers : [5, 7, 9, 11, 13] //numbers add {} : [() -> kotlin.Int, () -> kotlin.Int, () -> kotlin.Int, () -> kotlin.Int, () -> kotlin.Int]

    今天无意遇到一个问题,使用 zip 时一直报 null,检查好久后才发现多了一个花括号。 看了半天始终没明白,为什么匿名函数内多加一个花括号会导致返回 Unit?

    ]]>
    基于 Kotlin 和 Vert.x 的后端快速开发框架 tag:www.v2ex.com,2020-04-05:/t/659729 2020-04-05T18:00:19Z 2020-05-20T14:42:41Z dragonsunmoon member/dragonsunmoon 我在 GitHub 上有一个开源项目: https://github.com/LoveInShenZhen/sz-vertx-kotlin

    这个项目是采用 Kotlin 语言, 在 Vert.x 基础上, 专注于后端 api 接口的快速开发框架.

    框架介绍: http://loveinshenzhen.github.io/#/sz_framework/introduction

    希望对使用 kotlin 进行后端开发的同学, 有兴趣可以看看文档介绍, 运行一下 sample 体验一下.

    有想进行技术交流的同学, 可以加我的微信, 验证申请时请填入: kotlin

    微信号: dragonsunmoon

    微信二维码

    ]]>
    Kotlin 的协程实现的意义是什么呢? tag:www.v2ex.com,2020-03-20:/t/654737 2020-03-20T15:30:14Z 2020-03-22T03:40:26Z insomnia1232 member/insomnia1232 看了 kotlin 的协程实现,感觉就是线程调度库,换句话说就是伪协程,那和 Rxjava 这种东西的区别在哪呢?是切换效率更高,写起来更简洁吗?还是就因为是官方钦定的

    ]]>
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86