Стандартные функции Kotlin: запустить, с, пусть, также и применить - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь понять правильное использование функций (запустить, с, пусть, также, применить). Допустим, у нас есть следующий исходный код (я использую его для тестирования):

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
  • запустить еще несколько функций (подключиться)
  • получить другой объект обратно (inputtream)

Итак, я чувствую, что это более правильно:

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

Эти функции строго разделены?
Существуют ли инструкции (официальные или нет) о том, как использовать эти функции?

1 Ответ

0 голосов
/ 30 апреля 2018

Согласно официальным правилам вы должны использовать run, потому что вы возвращаете другое значение из блока. Итак, ваш первый код правильный:

con = urlGet.openConnection() as HttpURLConnection
inputStream = con.run {
   readTimeout = 10000
   connectTimeout = 2000
   requestMethod = "GET"
   doInput = true
   // Start the query
   connect()
   inputStream
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...