লোড হচ্ছে…

অনলাইন Kotlin কম্পাইলার ও প্লেগ্রাউন্ড

ব্রাউজার-ভিত্তিক কম্পাইলার ও প্লেগ্রাউন্ড, Kotlin, Progsity IDE।

Kotlin সম্পর্কে

এখনকার বেশিরভাগ Android app Kotlin এ লেখা হয়, আর Java যেখানে চলে Kotlin ও সেখানে চলে। Java র library গুলো সবই পাওয়া যায়, কিন্তু লিখতে হয় অনেক কম: semicolon নেই, type নিজে থেকেই ধরে নেয়, null নিয়ে ভুল হলে compiler আগেই ধরিয়ে দেয়।

এই playground এ আপনার file আসল Kotlin compiler দিয়ে compile হয়, তারপর sandbox এর ভেতরে Java 17 এর virtual machine এ চলে। উপরে package লাইন না দিয়ে সরাসরি fun main() লিখুন, standard library যত খুশি ব্যবহার করুন। প্রথমবার run করতে কয়েক সেকেন্ড লাগে, কারণ compiler টা নিজেই JVM এ চালু হয়।

Progsity র judge ও এই একই toolchain ব্যবহার করে। তাই এখানে যে solution ঠিকঠাক চলে, Kotlin আছে এমন contest বা exam এ সেটা একইভাবে চলবে।

কীভাবে ব্যবহার করবেন

  1. Editor এ সরাসরি fun main() লিখুন। package লাইন দেবেন না, পুরো program একটা file।
  2. Program input নিলে সেটা stdin panel এ লিখে দিন, code এ readln() বা readlnOrNull() দিয়ে পড়ুন।
  3. Run চাপুন। Compiler error এ line আর column দেখায়, ঠিক করে আবার run করুন।

প্রশ্নোত্তর

এখানে Kotlin এর কোন version চলে?›

Kotlin 2.4। JetBrains এর নিজের compiler দিয়ে compile হয়, চলে OpenJDK 17 এ।

প্রথম run এ কয়েক সেকেন্ড লাগে কেন?›

Kotlin compiler নিজেই একটা JVM program, আপনার file পড়ার আগে তাকে চালু হতে হয়। সময়টা যায় compile এ। আপনার program চলতে কত সময় নিল, সেটা আলাদা করে দেখানো হয়।

Java র class ব্যবহার করা যাবে?›

যাবে। Java 17 এর standard library র সবকিছুই আছে: java.util, java.math.BigInteger, java.io ইত্যাদি। বাইরের library নেই।

Input তাড়াতাড়ি পড়ব কীভাবে?›

অল্প input এর জন্য readln() ই যথেষ্ট। এক লাখ সংখ্যা পড়তে হলে System.`in` কে BufferedReader এ নিয়ে প্রতিটা line নিজে split করুন।

Kotlin code save করে রাখা যায়?›

যায়, sign in করার পর। Save করা snippet এর নিজস্ব link থাকে, সেটা share করতে পারবেন।

কোড উদাহরণ

উপরের এডিটরে উদাহরণ লোড করতে “এটি চেষ্টা করুন” ট্যাপ করুন।

  • List sort আর filter

    fun main() {
        val nums = listOf(3, 1, 4, 1, 5, 9)
        println(nums.sorted())
        println(nums.filter { it % 2 == 1 }.sum())
    }
  • when দিয়ে শর্ত

    fun grade(score: Int): String = when {
        score >= 80 -> "A+"
        score >= 60 -> "A"
        else -> "Try again"
    }
    
    fun main() {
        for (score in listOf(85, 64, 40)) {
            println("$score -> " + grade(score))
        }
    }
  • দুটো সংখ্যা পড়া

    fun main() {
        val (a, b) = readln().split(" ").map { it.toLong() }
        println(a + b)
    }
  • Data class আর copy

    data class Point(val x: Int, val y: Int)
    
    fun main() {
        val p = Point(2, 3)
        val q = p.copy(y = 10)
        println(p)
        println(q)
    }