Reputation: 1881
I am trying to understand the correct use of the functions (run, with, let, also, apply). Let's say we have the following initial code (I am using it for testing purposes):
con = urlGet.openConnection() as HttpURLConnection
con.readTimeout = 10000
con.connectTimeout = 2000
con.requestMethod = "GET"
con.doInput = true
con.connect()
inst = con.inputStream
According to this image I modified it to:
con = urlGet.openConnection() as HttpURLConnection
inputStream = con.run {
readTimeout = 10000
connectTimeout = 2000
requestMethod = "GET"
doInput = true
// Start the query
connect()
inputStream
}
But according to some guides I found, I think that I am doing multiple "jobs" there.
So, I am feeling that this is more correct:
con = urlGet.openConnection() as HttpURLConnection
con.apply {
readTimeout = 10000
connectTimeout = 2000
requestMethod = "GET"
doInput = true
}
inputStream = con.run {
// Start the query
connect()
inputStream
}
Are those functions so strictly separated?
Are there any guides (official or not) on how to use these functions?
Upvotes: 4
Views: 618
Reputation: 4884
According to the official guildelines you should be using run
because you return a different value from the block. So your first code is correct:
con = urlGet.openConnection() as HttpURLConnection
inputStream = con.run {
readTimeout = 10000
connectTimeout = 2000
requestMethod = "GET"
doInput = true
// Start the query
connect()
inputStream
}
Upvotes: 2