kotlinc-jvm 1.3.61 और kotlinx-coroutines-core-1.3.3 का उपयोग करके, निम्न कोड संकलित करने में विफल रहता है।

import kotlinx.coroutines.*
fun main() = runBlocking {
    launch {}
}

त्रुटि के साथ

Error: Main method not found in class SomeExampleKt, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

हालांकि, निम्न कोड संकलित और सफलतापूर्वक चलता है।

import kotlinx.coroutines.*
fun main() = runBlocking {
    launch {}
    print("") // The only addition
}

क्या कोई समझा सकता है कि सिर्फ एक print कथन जोड़ने से संकलन सक्षम हो जाता है?

0
Ryan Pierce 25 जिंदा 2020, 06:40

1 उत्तर

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

main फ़ंक्शन को कुछ भी वापस नहीं करना चाहिए (Unit)। runBlocking अपना अंतिम विवरण मान देता है और launch Job देता है, लेकिन print एक Unit फ़ंक्शन है। वापसी मान प्रकार निर्दिष्ट करने से यह समस्या हल हो सकती है।

import kotlinx.coroutines.*
fun main() = runBlocking<Unit> {
    launch {}
}
3
IR42 25 जिंदा 2020, 04:14