¿Cómo puedo usar el retorno en lugar de dejar entrar a Kotlin?

El Código A es de https://github.com/antoniolg/Kotlin-for-Android-Developers/blob/master/app/src/main/java/com/antonioleiva/weatherapp/data/db/ForecastDb.kt

Espero usar return en lugar de let , así que escribo el código B, pero no puedo comstackr el código B, y me dan dos errores, ¿por qué?

Error: (30, 10) 'return' no está permitido aquí

Error: (30, 45) Tipo no coincidente: tipo inferido es CityForecast? pero se esperaba CityForecast

El código A

override fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use { val dailyRequest = "${DayForecastTable.CITY_ID} = ? AND ${DayForecastTable.DATE} >= ?" val dailyForecast = select(DayForecastTable.NAME) .whereSimple(dailyRequest, zipCode.toString(), date.toString()) .parseList { DayForecast(HashMap(it)) } val city = select(CityForecastTable.NAME) .whereSimple("${CityForecastTable.ID} = ?", zipCode.toString()) .parseOpt { CityForecast(HashMap(it), dailyForecast) } city?.let { dataMapper.convertToDomain(it) } } 

El código B

  override fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use { val dailyRequest = "${DayForecastTable.CITY_ID} = ? AND ${DayForecastTable.DATE} >= ?" val dailyForecast = select(DayForecastTable.NAME) .whereSimple(dailyRequest, zipCode.toString(), date.toString()) .parseList { DayForecast(HashMap(it)) } val city = select(CityForecastTable.NAME) .whereSimple("${CityForecastTable.ID} = ?", zipCode.toString()) .parseOpt { CityForecast(HashMap(it), dailyForecast) } return dataMapper.convertToDomain(city) }