当前位置: 首页 > 知识库问答 >
问题:

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

狄飞尘
2023-03-14

我试图理解正确使用的功能(运行,与,让,也,应用)。假设我们有以下初始代码(我将其用于测试目的):

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

根据这张图片,我将其修改为:

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
        }

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

共有1个答案

袁谭三
2023-03-14

根据官方指南,您应该使用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的使用和区别详解,包括了Kotlin中标准函数run、with、let、also与apply的使用和区别详解的使用技巧和注意事项,需要的朋友参考一下 前言 和Java相比,在Kotlin中提供了不少新的特性。这次我们就来聊一聊Kotlin的一些通用的扩展标准函数run,with,let,also和apply。对于这五

  • 正如JPA所要求的,类应该有一个默认的(非参数)构造函数,以便在从数据库检索对象时实例化它们。 在Kotlin中,属性在主构造函数内声明非常方便,如下例所示: 但是当非arg构造函数被声明为次要构造函数时,它需要传递主构造函数的值,因此它们需要一些有效的值,如下所示: 如果属性具有比和更复杂的类型,并且它们是不可为空的,那么为它们提供值看起来是非常糟糕的,特别是当主构造函数和块中有很多代码,并且当

  • 标准c数学函数 -> 详解 标准c数学函数 abs 语法: #include <stdlib.h> int abs( int num ); 功能: 函数返回参数num.的绝对值。例如: int magic_number = 10; cout << "Enter a guess: "; cin >> x; cout << "Your guess was " << abs( magic_n

  • 其他标准c函数 -> Details 其他标准c函数 abort 语法: #include <stdlib.h> void abort( void );功能: 终止程序的执行。返回值依赖于执行,可以通过返回值显示错误。 相关主题: exit() and atexit(). assert 语法: #include <assert.h> void assert( int exp );功能: 宏asse

  • 其他标准c函数 其他标准c函数 abort() 停止程序执行 assert() 当表达式非真,停止程序执行 atexit() 当程序退出执行设定的程序 bsearch() 执行折半查找 exit() 停止程序执行 getenv() 获取指定环境变量的值 longjmp() 从设定点执行程序 qsort() 执行快速排序 raise() 向程序发送信号 rand() 返回一个随机数 setjmp()

  • 标准c内存函数 -> 详解 标准c内存函数 calloc 语法: #include <stdlib.h> void *calloc( size_t num, size_t size ); 功能: 函数返回一个指向num 数组空间,每一数组元素的大小为size。如果错误发生返回NULL。 相关主题: free(), malloc(), and realloc(). free 语法: #incl