कृपया वास्तविक "कार्यक्षमता" को अनदेखा करें और यहां लैम्ब्डा के उपयोग पर अधिक ध्यान केंद्रित करें क्योंकि मैं कोटलिन के लिए महसूस करने के लिए लैम्ब्डा, लेट, भी, रन आदि के साथ हैकिंग कर रहा हूं।

val listener : (String?)->String = {
            val s2 = it?.also {
            }
                ?: "Null"
            statusText.text=s2
            s2
        }

तो "श्रोता" के लिए लैम्ब्डा का यह असाइनमेंट ठीक है।

क्या कोई मुझे बता सकता है कि मैं पहले (और केवल) पैरामीटर को नाम निर्दिष्ट करने में असमर्थ क्यों हूं।

  val listener : (s: String?)->String = {
            val s2 = s?.also {
            }
                ?: "Null"
            statusText.text=s2
            s2
        }

लाइन में "वैल s2 = s?. भी ..." संकलक शिकायत करता है कि "s" एक अनसुलझा संदर्भ है। यदि ऐसा है तो पैरामीटर का नामकरण कानूनी क्यों है जैसे:

val listener : (s: String?)->String = {

कोई स्पष्टीकरण मेरी समझ में बहुत मददगार होगा।

0
RichieHH 20 जून 2019, 09:10

1 उत्तर

सबसे बढ़िया उत्तर

यह होना चाहिए

val listener : (s: String?) -> String = { s ->
    val s2 = s?.also {
    } ?: "Null"
    statusText.text=s2
    s2
}

या केवल

val listener : (String?) -> String = { s ->
    val s2 = s?.also {
    } ?: "Null"
    statusText.text=s2
    s2
}

ध्यान दें कि मम्बडा में return का उपयोग करना भी गलत है।

4
JB Nizet 20 जून 2019, 09:14