gpt4 book ai didi

Kotlin 标准函数 : run, with、let、also 和 apply

转载 作者:行者123 更新时间:2023-12-01 03:13:58 24 4
gpt4 key购买 nike

我试图理解函数的正确使用(运行、使用、让、也应用)。假设我们有以下初始代码(我将它用于测试目的):

con = urlGet.openConnection() as HttpURLConnection
con.readTimeout = 10000
con.connectTimeout = 2000
con.requestMethod = "GET"
con.doInput = true
con.connect()
inst = con.inputStream

根据这个 image我将其修改为:
con = urlGet.openConnection() as HttpURLConnection
inputStream = con.run {
readTimeout = 10000
connectTimeout = 2000
requestMethod = "GET"
doInput = true
// Start the query
connect()
inputStream
}

但根据我发现的一些指南,我认为我在那里做多项“工作”。
  • 修改初始con对象
  • 运行更多功能(连接)
  • 取回另一个对象(输入流)

  • 所以,我觉得这更正确:
        con = urlGet.openConnection() as HttpURLConnection
    con.apply {
    readTimeout = 10000
    connectTimeout = 2000
    requestMethod = "GET"
    doInput = true
    }
    inputStream = con.run {
    // Start the query
    connect()
    inputStream
    }

    那些功能就这么严格分开吗?
    是否有关于如何使用这些功能的指南(官方或非官方)?

    最佳答案

    根据official guildelines你应该使用 run因为您从块中返回了不同的值。所以你的第一个代码是正确的:

    con = urlGet.openConnection() as HttpURLConnection
    inputStream = con.run {
    readTimeout = 10000
    connectTimeout = 2000
    requestMethod = "GET"
    doInput = true
    // Start the query
    connect()
    inputStream
    }

    关于Kotlin 标准函数 : run, with、let、also 和 apply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099346/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com