<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/feed.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kotlin Koans BR · rsicarelli.com</title><description>A hands-on tour of Kotlin&apos;s core language features — from string templates to sealed classes and smart casts — one short, focused exercise at a time.</description><link>https://rsicarelli.com/</link><language>en</language><copyright>© 2026 Rodrigo Sicarelli — CC BY-NC 4.0 (https://creativecommons.org/licenses/by-nc/4.0/)</copyright><atom:link href="https://rsicarelli.com/en/series/kotlin-koans-br/rss.xml" rel="self" type="application/rss+xml"/><item><title>Kotlin Koans BR: Hello, world!</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-ola-mundo/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-ola-mundo/</guid><description>Change the code so that the start function returns the string &quot;OK&quot;.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Named arguments</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-nomeados/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-nomeados/</guid><description>Make the joinOptions() function return the list in JSON format (for example, [a, b, c]) by specifying only two arguments.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Default arguments</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-padrao/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-argumentos-padrao/</guid><description>Imagine you have several overloads of foo() in your favorite language. You can replace them all with a single function in Kotlin.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Triple-quoted strings</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-strings-com-tres-aspas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-strings-com-tres-aspas/</guid><description>Swap the trimIndent call for trimMargin, setting # as the prefix value, so the resulting string no longer contains the prefix character.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: String Templates</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-modelos-de-string/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-modelos-de-string/</guid><description>The pattern below matches a date in the format 13.06.1992 (two digits, a dot, two digits, a dot, four digits):</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Nullable types</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipos-anulaveis/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipos-anulaveis/</guid><description>Rewrite the following code so that it uses only a single if expression, and learn how Kotlin handles nullable types safely.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: The &quot;nothing&quot; type (Nothing)</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipo-nenhum-nothing/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipo-nenhum-nothing/</guid><description>Specify the Nothing return type for the failWithWrongAge function.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Lambdas</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-lambdas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-lambdas/</guid><description>Pass a lambda to the any function to check whether the collection contains an even number.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Data Classes</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-classes-de-dados-data-classes/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-classes-de-dados-data-classes/</guid><description>Rewrite the following code in Kotlin, then add the data modifier. A beginner-friendly look at Kotlin classes and data classes.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Smart casts</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-tipagem-inteligente/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-tipagem-inteligente/</guid><description>Rewrite the given code using Kotlin smart casts and the when expression.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Sealed Classes</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-classes-seladas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-classes-seladas/</guid><description>Reuse your solution from the previous task, but replace the interface with a sealed interface. That way you no longer need the else branch in the when expression.</description><pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Import alias</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-alias-para-importacao-import-alias/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-alias-para-importacao-import-alias/</guid><description>When importing a class or function, you can give it a different name by adding as NewName after the import directive. This can be useful when…</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate></item><item><title>Kotlin Koans BR: Extension functions and properties</title><link>https://rsicarelli.com/en/blog/kotlin-koans-br-extension-functions-e-properties-funcoes-e-propriedades-estendidas/</link><guid isPermaLink="true">https://rsicarelli.com/en/blog/kotlin-koans-br-extension-functions-e-properties-funcoes-e-propriedades-estendidas/</guid><description>Implement the extension functions Int.r() and Pair.r() so they convert an Int and a Pair into a RationalNumber.</description><pubDate>Sat, 06 Apr 2024 00:00:00 GMT</pubDate></item></channel></rss>