AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[kotlin](coding)

Martin Hope
Harry
Asked: 2025-04-29 12:35:16 +0800 CST

Kotlin“for循环”向下独家

  • 6

如何用 Kotlin 编写此 Java 代码?

//Java
for (int i = 10; i > 0; i--);

如您所见,“i”不能为零。

我知道这个可以用“downTo”来完成,像这样:

for (i in 10 downTo 0)

但是“downTo”包含零。我希望它不包含零。我的问题是,在 Kotlin 中有没有办法做到这一点?(只在“for 循环”中实现,不改变零或十,也不用任何额外的“if”语句)

kotlin
  • 1 个回答
  • 57 Views
Martin Hope
user30224617
Asked: 2025-04-22 22:06:45 +0800 CST

为什么在 Kotlin 中 Unit 类型被特殊处理?

  • 12

请在 Kotlin 中解释此行为:

data class A<T>(val p: T)
class B

fun f1(): A<Number> = A(B()) as A<Number>
fun f2(): A<Unit> = A(B()) as A<Unit>

fun main() {
    println("f1: ${f1().p::class.simpleName}") // print "f1: B"
    println("f2: ${f2().p::class.simpleName}") // print "f2: Unit"
}

我希望在第一种和第二种情况下输出“B”。

此外,有趣的是,它可以正常工作data class A<T>(val p: T?)。

这是某种编译器优化吗?

kotlin
  • 1 个回答
  • 165 Views
Martin Hope
binarynoise
Asked: 2025-04-20 00:30:51 +0800 CST

Kotlin 的 forEach 隐藏了原始的 forEach

  • 9

我已经使用 创建了一个集合Collections.synchronizedSet<T>(mutableSetOf<T>())。它
SynchronizedSet有自己的 (synchronized) 实现forEach,与 (not synchronized) 提供的实现不同Iterable.forEach,但是 Kotlin 的Iterable.forEach实现带有注释@HidesMembers,因此它会被调用而不是同步的实现。

我如何恢复的同步版本forEach?

kotlin
  • 2 个回答
  • 91 Views
Martin Hope
Ritesh Kumar
Asked: 2025-04-09 12:54:04 +0800 CST

无法检查已安装的 kotlin 版本

  • 5

我之前是一名拥有十多年经验的 Web 开发者,但现在我想转到 Android 应用开发领域。我是 Android 新手,但有 Web 开发经验。为了开发 Android 应用,我开始学习 Kotlin,ubuntu system 24.04.2 LTS但一直没能安装成功。

有谁有时间帮助我在我的 ubuntu 系统中设置 kotlin 吗?

我已经通过以下命令安装了 kotlin:

sudo snap install kotlin --classic

kotlin 2.1.20 from jetbrains✓ installed

安装后,我通过以下命令检查 kotlin 的版本:

kotlin -version

我的ubuntu系统给出的错误是:

error: no build.txt was found at home=/usr/share/kotlin/kotlinc

尽管预期输出是:

Kotlin 版本

kotlin
  • 1 个回答
  • 32 Views
Martin Hope
Aldic
Asked: 2025-04-08 07:56:05 +0800 CST

Quarkus GraphQL 订阅已取消

  • 5

我正在服务器上运行订阅(然后处理到 redis),但如果客户端断开连接(无论是连接失败还是离开页面),我需要调用操作。这可能吗?经过几天的搜索,我找不到任何文档或示例。

订阅端点示例

@Subscription("Notification")
fun notification(id: UUID): Multi<NotificationDto>? {
    
    return dataSource.pubsub(NotificationDto::class.java)
        .subscribe(id.toString())
        .broadcast()
        .toAllSubscribers() 

}
kotlin
  • 1 个回答
  • 27 Views
Martin Hope
firstpostcommenter
Asked: 2025-04-06 17:39:58 +0800 CST

如何使 JsonUwrapped 注释在 Kotlin 数据类中发挥作用

  • 5

如何使 Jackson@JsonUnwrapped注释在 Kotlin 数据类中正确工作以进行反序列化?

除了为此类创建自定义反序列化器并将其作为模块添加到对象映射器之外,我没有找到任何简单的解决方案。

这是我的代码示例:

@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy::class)
@Schema(description = "Customer Details", allOf = [Address::class, Person::class])
data class CustomerDetails(
  @JsonUnwrapped val addressDetails: Address?,// address related fields
  @JsonUnwrapped val personDetails: Person? // person related fields
)

@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy::class)
data class Address(
  val houseNumber: Int?,
  val streetName: String?,
  val city: String?
)

@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy::class)
data class Person(
  val firstName: String?,
  val lastName: String?,
  val initials: String?
)

由于 @Schema 注释,swagger 页面运行良好。由于 @JsonUnwrapped 注释,对象到 JSON 的序列化按预期工作。但反序列化失败并出现错误:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法将 Creator 属性“属性名称”定义为@JsonUnwrapped:组合尚不支持

kotlin
  • 1 个回答
  • 32 Views
Martin Hope
hcc
Asked: 2025-04-04 06:51:20 +0800 CST

Koltlin:如何使用过滤器 eq 进行具有多个条件的过滤

  • 6

目前,我正在使用

     val response = supabase.from("schedules")
                    .select()
                    { filter {eq("user_id", userId)   } }  // Filtering by the user_id

通过 uder_id 进行过滤。但是,在此之后,我还想通过默认值(布尔值)进行过滤。我找不到有关此内容的任何文档。有人可以给我一些建议吗?

我尝试过类似的事情

val response = supabase.from("schedules")
                    .select()
                    { filter {eq("user_id", userId),eq("defualt", "TRUE")   } }

和

val response = supabase.from("schedules")
                    .select()
                    { filter {eq("user_id", userId) } }.select()
                    { filter {eq("defualt", "TRUE")   } }

但它们都不起作用。我找不到有关此问题的任何文档。有人能给我一些建议吗?

kotlin
  • 1 个回答
  • 28 Views
Martin Hope
A. Cedano
Asked: 2025-03-10 06:06:02 +0800 CST

如何在 Kotlin 中将字符串的第一个字符大写,同时忽略非字母字符?

  • 6

我正在使用replaceFirstChar()并将uppercase()字符串的第一个字符转换为大写。

但有些字符串的第一个字符可能是标点符号、引号等。在这种情况下,我希望它忽略它们,并替换它找到的第一个字母数字字符。

我怎样才能实现这个目标?

代码

fun main(){    
    println("kotlin".replaceFirstChar       { it.uppercase() })  // Kotlin
    println("¡kotlin!".replaceFirstChar     { it.uppercase() })  // I need ¡Kotlin!
    println("¿kotlin?".replaceFirstChar     { it.uppercase() })  // I need ¿Kotlin?
    println("\"¿kotlin?\"".replaceFirstChar { it.uppercase() })  // I need "¿Kotlin?"
    println("\"kotlin\"".replaceFirstChar   { it.uppercase() })  // I need "Kotlin"
}

输出

Kotlin
¡kotlin!
¿kotlin?
"¿kotlin?"
"kotlin"

期望输出

Kotlin
¡Kotlin!
¿Kotlin?
"¿Kotlin?"
"Kotlin"
kotlin
  • 2 个回答
  • 25 Views
Martin Hope
Rafel C.F
Asked: 2025-03-08 22:11:56 +0800 CST

分页 Itext

  • 6

我创建了一个带有页眉和表格的 .PDF,我的问题是,当显示它时,它只显示最后两页的页码和总页数,例如,如果我有一个 5 页的文档,它只显示最后两页中的第 4 页(共 5 页)、第 4 页和第 5 页中的第 5 页(共 5 页),但它不显示第 1、2 和 3 页上的任何内容。我该如何解决这个问题?

document.add(headerTable)
        document.add(font18)
        document.add(listaClientes)
        val totalPages = pdfDocument.getNumberOfPages()

        val handler = PageNumberHandler(pdfDocument, totalPages)
        pdfDocument.addEventHandler(PdfDocumentEvent.END_PAGE, handler)
        document.add(
            Paragraph(
                "\nListado enviado el: ${
                    LocalDate.now().toString()
                        .let { reformatDate(it).replaceFirstChar(Char::titlecase) }
                } "
            ).setTextAlignment(TextAlignment.CENTER)
        )

        document.close()

我的 PageNumberHandler

    class PageNumberHandler(val pdfDocument: PdfDocument, val totalPages: Int) : IEventHandler {
override fun handleEvent(event: Event) {
    val docEvent = event as PdfDocumentEvent
    val pdfDoc = docEvent.document
    val page = docEvent.page
    val pageNumber = pdfDocument.getPageNumber(page)
    val pageSize = page.pageSize
    val x = pageSize.width - 50
    val y = 20f // Ajusta este valor según la altura deseada del pie de página
    val canvas = Canvas(page, pageSize)
    val paragraph = Paragraph("Página $pageNumber de $totalPages")
        .setTextAlignment(TextAlignment.RIGHT)
        .setHorizontalAlignment(HorizontalAlignment.RIGHT)
    canvas.showTextAligned(
        paragraph,
        x,
        y,
        pageNumber,
        TextAlignment.RIGHT,
        VerticalAlignment.BOTTOM,
        0f
    ) 
    canvas.close()
}
kotlin
  • 1 个回答
  • 39 Views
Martin Hope
Vencat
Asked: 2025-03-05 22:53:38 +0800 CST

Arrow 的 Schedule.doWhile() 的输入和输出参数有什么区别?

  • 6

我在 Arrow 文档中看到过这个示例:

import arrow.resilience.Schedule
 
 suspend fun main() {
     var result = ""
     Schedule
         .doWhile<String>  { input, output -> input.length <= 5 }
         .repeat {
             result += "a"
             result
         }
     println(result)
 }

output我不明白 lambda中的的用途是什么,doWhile因为它总是与 相同input。

kotlin
  • 1 个回答
  • 35 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve