Kotlin ट्यूटोरियल
कोटलिन से शुरुआत करना
खोज…
टिप्पणियों
कोटलिन जेट - ब्रेन द्वारा विकसित एक सांख्यिकीय रूप से टाइप की गई वस्तु-उन्मुख प्रोग्रामिंग भाषा है जो मुख्य रूप से जेवीएम को लक्षित करती है। कोटलीन को त्वरित संकलन करने के लक्ष्य के साथ विकसित किया गया है, पीछे की ओर संगत, बहुत सुरक्षित प्रकार, और जावा के साथ 100% इंटरऑपरेबल। कोटलिन को जावा डेवलपर्स द्वारा वांछित कई सुविधाएं प्रदान करने के लक्ष्य के साथ भी विकसित किया गया है। कोटलिन के मानक संकलक इसे JVM के लिए जावा जावास्क्रिप्ट में और जावास्क्रिप्ट में संकलित करने की अनुमति देता है।
संकलन कोटलिन
कोटलिन में ग्रहण और इंटेलीज के लिए एक मानक आईडीई प्लगइन है। कोटलिन को मावेन का उपयोग करके , चींटी का उपयोग करके , ग्रैडल का उपयोग करके या कमांड लाइन के माध्यम से भी संकलित किया जा सकता है।
यह $ kotlinc Main.kt
में ध्यान देने योग्य है। $ kotlinc Main.kt
एक java क्लास फ़ाइल का उत्पादन करेगा, इस मामले में MainKt.class
(क्लास नाम से संबंधित Kt नोट करें)। हालाँकि अगर कोई $ java MainKt
java का उपयोग करके वर्ग फ़ाइल चलाने के लिए था, तो निम्न अपवाद को फेंक देगा:
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
जावा का उपयोग करके परिणामी क्लास फ़ाइल को चलाने के लिए, किसी को कोटलिन रन-टाइम जार फ़ाइल को वर्तमान क्लास पथ में शामिल करना चाहिए।
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
1.0.0 | 2016/02/15 |
1.0.1 | 2016/03/16 |
1.0.2 | 2016/05/13 |
1.0.3 | 2016/06/30 |
1.0.4 | 2016/09/22 |
1.0.5 | 2016/11/08 |
1.0.6 | 2016/12/27 |
1.1.0 | 2017/03/01 |
1.1.1 | 2017/03/14 |
1.1.2 | 2017/04/25 |
1.1.3 | 2017/06/23 |
नमस्ते दुनिया
सभी कोटलिन कार्यक्रम main
समारोह में शुरू होते हैं। यहाँ एक सरल कोटलिन "हैलो वर्ल्ड" कार्यक्रम का एक उदाहरण दिया गया है:
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
उपरोक्त कोड को Main.kt
नामक फ़ाइल में Main.kt
(यह फ़ाइल नाम पूरी तरह से मनमाना है)
जेवीएम को लक्षित करते समय, फ़ंक्शन को एक वर्ग में एक स्थिर विधि के रूप में संकलित किया जाएगा, जिसका नाम फ़ाइल नाम से लिया गया है। उपरोक्त उदाहरण में, चलाने के लिए मुख्य वर्ग my.program.MainKt
होगा।
किसी विशेष फ़ाइल के लिए शीर्ष-स्तरीय फ़ंक्शन वाले वर्ग का नाम बदलने के लिए, पैकेज विवरण के ऊपर फ़ाइल के शीर्ष पर निम्न एनोटेशन रखें:
@file:JvmName("MyApp")
इस उदाहरण में, चलाने के लिए मुख्य वर्ग अब my.program.MyApp
।
यह सभी देखें:
- पैकेज स्तर
@JvmName
एनोटेशन सहित कार्य करता है । - एनोटेशन उपयोग-साइट लक्ष्य
नमस्ते विश्व एक वस्तु घोषणा का उपयोग कर
आप वैकल्पिक रूप से एक ऑब्जेक्ट घोषणा का उपयोग कर सकते हैं जिसमें एक कोटलिन कार्यक्रम के लिए मुख्य कार्य शामिल है।
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
आपके द्वारा चलाया जाने वाला वर्ग नाम आपकी वस्तु का नाम है, इस मामले में my.program.App
।
एक शीर्ष-स्तरीय फ़ंक्शन पर इस पद्धति का लाभ यह है कि चलाने के लिए क्लास का नाम अधिक स्व-स्पष्ट है, और आपके द्वारा जोड़े गए किसी भी अन्य फ़ंक्शन को क्लास App
में स्कैन किया जाता है। फिर आपके पास राज्य को संग्रहीत करने और अन्य काम करने के लिए App
का एक सिंगलटन उदाहरण भी है।
यह सभी देखें:
-
@JvmStatic
एनोटेशन सहित स्टेटिक तरीके
नमस्ते विश्व एक साथी वस्तु का उपयोग कर
ऑब्जेक्ट डिक्लेरेशन का उपयोग करने के समान, आप क्लास के कंपेनियन ऑब्जेक्ट का उपयोग करके कोटलिन प्रोग्राम के main
कार्य को परिभाषित कर सकते हैं।
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
आपके द्वारा चलाया जाने वाला वर्ग नाम आपकी कक्षा का नाम है, इस मामले में my.program.App
।
एक शीर्ष-स्तरीय फ़ंक्शन पर इस पद्धति का लाभ यह है कि चलाने के लिए क्लास का नाम अधिक स्व-स्पष्ट है, और आपके द्वारा जोड़े गए किसी भी अन्य फ़ंक्शन को क्लास App
में स्कैन किया जाता है। यह Object Declaration
उदाहरण के समान है, इसके अलावा आप आगे काम करने के लिए किसी भी क्लास को तत्काल करने के नियंत्रण में हैं।
थोड़ी सी भिन्नता जो वास्तविक "हैलो" करने के लिए कक्षा को तुरंत करती है:
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
यह सभी देखें:
- @JvmStatic एनोटेशन सहित स्टेटिक तरीके
मुख्य तरीके varargs का उपयोग कर
इन सभी मुख्य विधि शैलियों का उपयोग varargs के साथ भी किया जा सकता है:
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
कंपाइल और कमांड लाइन में कोटलिन कोड चलाएं
जावा कोड को संकलित करने और चलाने के लिए जावा दो अलग-अलग कमांड प्रदान करता है। कोटलिन के रूप में भी आपको अलग-अलग कमांड प्रदान करते हैं।
जावा फ़ाइलों को संकलित करने के लिए javac
। java
जावा फ़ाइलें चलाने के लिए।
के रूप में ही kotlinc
फ़ाइलों kotlin संकलित करने के लिए kotlin
kotlin फ़ाइलों को चलाने के लिए।
कमांड लाइन से रीडिंग इनपुट
कंसोल से पारित तर्क को कोटलिन कार्यक्रम में प्राप्त किया जा सकता है और इसे इनपुट के रूप में इस्तेमाल किया जा सकता है। आप कमांड प्रॉम्प्ट से N (1 2 3 वगैरह) तर्कों की संख्या पास कर सकते हैं।
कोटलिन में एक कमांड-लाइन तर्क का एक सरल उदाहरण।
fun main(args: Array<String>) {
println("Enter Two number")
var (a, b) = readLine()!!.split(' ') // !! this operator use for NPE(NullPointerException).
println("Max number is : ${maxNum(a.toInt(), b.toInt())}")
}
fun maxNum(a: Int, b: Int): Int {
var max = if (a > b) {
println("The value of a is $a");
a
} else {
println("The value of b is $b")
b
}
return max;
}
यहां, अधिकतम संख्या ज्ञात करने के लिए कमांड लाइन से दो नंबर दर्ज करें। आउटपुट:
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
के लिये !! ऑपरेटर कृपया सुरक्षा की जाँच करें।
नोट: ऊपर दिए गए उदाहरण संकलन और इंटेलीज पर चलते हैं।