Challenge 2: Typed Values & Inference — Solution fun main() { // With explicit type annotations val age: Int = 33 val price: Double = 19.99 val isReady: Boolean = true val initial: Char = 'P' val title: String = "Learning Blog" println(age) println(price) println(isReady) println(initial) println(title) // Same values, rewritten with type inference (no annotations) val inferredAge = 33 val inferredPrice = 19.99 val inferredIsReady = true val inferredInitial = 'P' val inferredTitle = "Learning Blog" println(inferredAge) println(inferredPrice) println(inferredIsReady) println(inferredInitial) println(inferredTitle) } /* Output (both blocks print identically): 33 19.99 true P Learning Blog 33 19.99 true P Learning Blog Notes: - Int for whole numbers, Double for decimals, Boolean for true/false, Char for a single character (single quotes), String for text (double quotes). - Kotlin infers the same types from the literals on the right-hand side — 33 -> Int, 19.99 -> Double, true -> Boolean, 'P' -> Char, "..." -> String. The annotations are optional here because the type is unambiguous. */