<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Renato O da Silva</title>
    <description>The latest articles on DEV Community by Renato O da Silva (@oliversieto).</description>
    <link>https://dev.to/oliversieto</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F90302%2F4a6a544d-7284-4d46-ad5b-2d1fc689a988.jpg</url>
      <title>DEV Community: Renato O da Silva</title>
      <link>https://dev.to/oliversieto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oliversieto"/>
    <language>en</language>
    <item>
      <title>Tipos Básicos em Kotlin - String Literals</title>
      <dc:creator>Renato O da Silva</dc:creator>
      <pubDate>Sat, 14 Sep 2024 03:02:48 +0000</pubDate>
      <link>https://dev.to/oliversieto/tipos-basicos-em-kotlin-string-literals-39c8</link>
      <guid>https://dev.to/oliversieto/tipos-basicos-em-kotlin-string-literals-39c8</guid>
      <description>&lt;p&gt;Na última postagem eu comecei falar sobre strings e vamos dar continuidade falando de string literals.&lt;br&gt;
Kotlin possui dois tipos de strings literals, Multiline Strings e Scaped Strings.&lt;/p&gt;
&lt;h2&gt;
  
  
  Multiline Strings
&lt;/h2&gt;

&lt;p&gt;Diferente das strings convencionais, a multiline permite a adição de mais linhas dentro do texto. Se você tentar criar uma string com várias linhas, utilizando aspas duplas, isso irá gerar um erro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;texto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"
&lt;/span&gt;    &lt;span class="nc"&gt;Hoje&lt;/span&gt; &lt;span class="n"&gt;é&lt;/span&gt; &lt;span class="n"&gt;domingo&lt;/span&gt;
    &lt;span class="nc"&gt;Pede&lt;/span&gt; &lt;span class="n"&gt;cachimbo&lt;/span&gt;
    &lt;span class="nc"&gt;O&lt;/span&gt; &lt;span class="n"&gt;cachimbo&lt;/span&gt; &lt;span class="n"&gt;é&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;barro&lt;/span&gt;
    &lt;span class="nc"&gt;Bate&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt; &lt;span class="n"&gt;jarro&lt;/span&gt;
    &lt;span class="s"&gt;"
&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O código acima irá gerar vários erros conforme abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Syntax error: Expecting &lt;span class="s1"&gt;'"'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Syntax error: Incorrect template entry: &lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'Hoje'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'domingo'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'Pede'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'O'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'é'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'barro'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'Bate'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Unresolved reference &lt;span class="s1"&gt;'jarro'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Syntax error: Expecting &lt;span class="s1"&gt;'"'&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
Syntax error: Incorrect template entry: &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Então o que fazemos quando precisamos imprimir um texto com múltiplas linhas? Utilizamos multiline strings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;texto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"""
    Hoje é domingo
    Pede cachimbo
    O cachimbo é de barro
    Bate no jarro
    """&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Hoje é domingo&lt;/span&gt;
    &lt;span class="c1"&gt;//     Pede cachimbo&lt;/span&gt;
    &lt;span class="c1"&gt;//     O cachimbo é de barro&lt;/span&gt;
    &lt;span class="c1"&gt;//     Bate no jarro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repare que o texto mesmo estando formatado, gerou uma saída toda bagunçada. Uma maneira de resolver isso é utilizando o método ** trimMargin()** que pode ser utilizado para remover espaços em brancos quando estamos utilizando multiline strings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;texto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"""
    |Hoje é domingo
    |Pede cachimbo
    |O cachimbo é de barro
    |Bate no jarro
    """&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trimMargin&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Hoje é domingo&lt;/span&gt;
    &lt;span class="c1"&gt;// Pede cachimbo&lt;/span&gt;
    &lt;span class="c1"&gt;// O cachimbo é de barro&lt;/span&gt;
    &lt;span class="c1"&gt;// Bate no jarro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O Kotlin por padrão usa o símbolo "|" como prefixo para margem, mas podemos utilizar outro símbolo, apenas devemos indicar isso no método &lt;strong&gt;trimMargin()&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;texto&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"""
    ?Hoje é domingo
    ?Pede cachimbo
    ?O cachimbo é de barro
    ?Bate no jarro
    """&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;trimMargin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"?"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Aqui utilizamos a ? como prefixo, podendo ser outro caractere&lt;/span&gt;
    &lt;span class="c1"&gt;// Hoje é domingo&lt;/span&gt;
    &lt;span class="c1"&gt;// Pede cachimbo&lt;/span&gt;
    &lt;span class="c1"&gt;// O cachimbo é de barro&lt;/span&gt;
    &lt;span class="c1"&gt;// Bate no jarro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Escaped Strings
&lt;/h2&gt;

&lt;p&gt;Escaped strings podem conter caracteres escapados. Abaixo temos um exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;saudacao&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ola\nJosé"&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;saudacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Ola&lt;/span&gt;
    &lt;span class="c1"&gt;// José&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para utilizar escape, usamos o caractere &lt;strong&gt;*&lt;em&gt;. Repare que a string está em uma linha só, mas na hora de imprimir na tela, foi impresso em duas linhas. O caractere *&lt;/em&gt;\n&lt;/strong&gt; serve para pular uma linha e o mesmo não é impresso visualmente.&lt;br&gt;
Temos uma lista de caracteres que podem ser escapados, conforme abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;\t – tabulação&lt;/li&gt;
&lt;li&gt;\b – backspace (não gostei dessa tradução, por isso deixei sem tradução)&lt;/li&gt;
&lt;li&gt;\n – nova linha&lt;/li&gt;
&lt;li&gt;\r – enter&lt;/li&gt;
&lt;li&gt;\' – aspas simples&lt;/li&gt;
&lt;li&gt;\" – aspas duplas&lt;/li&gt;
&lt;li&gt;\ – barra inversa&lt;/li&gt;
&lt;li&gt;\$ – Sinal de Dólar
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"\tAqui temos uma tab"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;//  Aqui temos uma tab&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"\bAqui temos um backspace"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;//Aqui temos um backspace &lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Aqui imprime uma nova linha\n"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Aqui imprime uma nova linha&lt;/span&gt;
    &lt;span class="c1"&gt;// &lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Aqui imprime um enter\r"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Aqui imprime um enter &lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'\''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// '&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"\""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// "&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Aqui imprime a barra inversa \\"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Aqui imprime a barra inversa \&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Aqui imprime o sinal de dólar \$"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Aqui imprime o sinal de dólar $&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vou ficando por aqui, em breve continuaremos com as strings.&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>tiposdedados</category>
      <category>strings</category>
      <category>stringliterals</category>
    </item>
    <item>
      <title>Tipos Básicos em Kotlin - Strings</title>
      <dc:creator>Renato O da Silva</dc:creator>
      <pubDate>Thu, 12 Sep 2024 16:36:13 +0000</pubDate>
      <link>https://dev.to/oliversieto/tipos-basicos-em-kotlin-strings-2ob6</link>
      <guid>https://dev.to/oliversieto/tipos-basicos-em-kotlin-strings-2ob6</guid>
      <description>&lt;p&gt;Hoje irei abordar um tipo de dados que é muito utilizado na computação em geral, que são as Strings. Em algumas linguagens de programação antigas é um tanto complicado trabalhar com Strings, mas em linguagens mais recentes como Kotlin é bem fácil de criar e manipular Strings.&lt;/p&gt;

&lt;p&gt;Strings são sequências de caracteres, comumente usadas para representar palavras, frases ou textos em um programa. Em Kotlin, strings são representadas pelo tipo String.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExaXVtam1rZWl2Y2xtcXp3M241a3J0ZTY4a3RpMnRybzJ6NXMxZ3U1ZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cD7PLGE1KWOhG/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExaXVtam1rZWl2Y2xtcXp3M241a3J0ZTY4a3RpMnRybzJ6NXMxZ3U1ZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/cD7PLGE1KWOhG/giphy.gif" width="600" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podem ser atribuídas a uma variável da seguinte maneira:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;palavra&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"abacate"&lt;/span&gt; 
&lt;span class="c1"&gt;// Uma string sempre irá começar com aspas duplas &lt;/span&gt;
&lt;span class="c1"&gt;// e terminar com aspas duplas.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É possível acessar caracteres de uma string por meio de indexação, ou seja, através da posição da string no qual você deseja acessar. Podemos iterar sobre os caracteres através de for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;item&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"um texto qualquer"&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;// Ou podemos acessar o item pelo índice&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quando vamos acessar uma parte da string pelo índice, temos que tomar cuidado para não tentarmos acessar um índice que não existe.&lt;br&gt;
Caso tente acessar um índice inexistente, será lançada uma exceção do tipo &lt;strong&gt;StringIndexOutOfBoundsException&lt;/strong&gt;. Execute o código abaixo e verá o erro acontecendo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;item&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"um texto qualquer"&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Strings são imutáveis. Uma vez inicializada, seu valor não pode ser alterado. Qualquer operação que a modifique cria um novo objeto String, preservando o original:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;item&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ola mundo"&lt;/span&gt;

    &lt;span class="c1"&gt;// o método abaixa cria e imprime uma nova string escrita ao contrário&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="c1"&gt;// odnum alO&lt;/span&gt;

    &lt;span class="c1"&gt;// o valor original continua o mesmo&lt;/span&gt;
    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
    &lt;span class="c1"&gt;// Ola mundo&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Existe a possibilidade de se concatenar strings, onde você junta duas strings conforme abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="k"&gt;fun&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;saudacao&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ola "&lt;/span&gt;
    &lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;pessoa&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Renato"&lt;/span&gt;    

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;saudacao&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;pessoa&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Ola Renato&lt;/span&gt;

    &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="py"&gt;novaSaudacao&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ola "&lt;/span&gt;
    &lt;span class="n"&gt;novaSaudacao&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;novaSaudacao&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;pessoa&lt;/span&gt;

    &lt;span class="nf"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;novaSaudacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;// Ola Renato&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vou ficando por aqui, em breve volto com a continuação de strings.&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>tiposdedados</category>
      <category>strings</category>
      <category>programacao</category>
    </item>
    <item>
      <title>Tipos Básicos em Kotlin - Inteiros sem sinais</title>
      <dc:creator>Renato O da Silva</dc:creator>
      <pubDate>Tue, 11 Jun 2024 00:03:11 +0000</pubDate>
      <link>https://dev.to/oliversieto/inteiros-sem-sinal-no-kotlin-1gg3</link>
      <guid>https://dev.to/oliversieto/inteiros-sem-sinal-no-kotlin-1gg3</guid>
      <description>&lt;p&gt;No último post eu falei sobre os tipos de dados &lt;a href="https://dev.to/oliversieto/tipos-basicos-em-kotlin-10i2"&gt;numéricos mais utilizados&lt;/a&gt;. &lt;br&gt;
Hoje vamos falar de outros tipos de dados numéricos, &lt;br&gt;
que não são tão utilizados pela maioria dos desenvolvedores. &lt;/p&gt;

&lt;p&gt;Hoje vou dos números inteiros sem sinal, mas o que isso quer dizer? São tipos de dados que só aceitam números positivos, onde o valor inicial começa em 0 e vai até a capacidade máxima permitida para o tipo em questão.&lt;/p&gt;

&lt;p&gt;O Kotlin fornece os seguintes tipos de dados para valores inteiros sem sinal:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo&lt;/th&gt;
&lt;th&gt;Tamanho (bits)&lt;/th&gt;
&lt;th&gt;Valor Mínimo&lt;/th&gt;
&lt;th&gt;Valor Máximo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;UByte&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;255&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UShort&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;65535&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UInt&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;4,294,967,295 (232 - 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ULong&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;18,446,744,073,709,551,615 (264 - 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Números inteiros sem sinal devem ser declarados de forma específica como abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;UByte&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1u&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;UShort&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1u&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;l&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;ULong&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1u&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;UInt&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;55u&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repare que todos os números são finalizados com a letra u, pode a ser tanto maiúscula ou minúscula. Você pode inicializar uma variável sem especificar o tipo dela, mas nesse caso o Kotlin vai inferir o tipo UInt ou ULong à depender do tamanho do valor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;b&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1U&lt;/span&gt; &lt;span class="c1"&gt;// Nesse caso será inferido o UInt como tipo&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;k&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4294967298U&lt;/span&gt; &lt;span class="c1"&gt;// Como ultrapassa o tamanho reservado ao UInt é inferido o ULong como tipo.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Caso você queira verificar o tipo da variável você pode rodar o código abaixo:&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://pl.kotl.in/OYYOmRvuF?theme=darcula&amp;amp;from=5&amp;amp;to=8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;No Exemplo acima você pode ser perguntar o motivo de estar usando Java juntamente com Kotlin, isso é possível por Kotlin tem uma interoperabilidade com Java, onde é possível utilizar código Java com Kotlin e vice-versa. &lt;/p&gt;

&lt;p&gt;Com Kotlin é possível você definir o tipo da variável através da inferência de tipos, especificando que a mesma será do tipo Long, adicionando um L ao final: &lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://pl.kotl.in/kByeuCq-c?theme=darcula"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Um cuidado muito importante ao se trabalhar com números inteiros sem sinal é que não podemos adicionar um valor negativo, pois isso gerará um erro.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://pl.kotl.in/L1q1c7aFo?theme=darcula"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Então se você não tiver certeza de que irá trabalhar apenas com números positivos, escolha outro tipo de dados, assim não acontecerá um erro na sua aplicação. Por hoje vou ficando por aqui, até a próxima.&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>programacao</category>
      <category>tiposdedados</category>
      <category>inteirossemsinais</category>
    </item>
    <item>
      <title>Tipos Básicos em Kotlin - Tipos numéricos</title>
      <dc:creator>Renato O da Silva</dc:creator>
      <pubDate>Sat, 08 Jun 2024 01:23:11 +0000</pubDate>
      <link>https://dev.to/oliversieto/tipos-basicos-em-kotlin-10i2</link>
      <guid>https://dev.to/oliversieto/tipos-basicos-em-kotlin-10i2</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Recentemente mudei de equipe na empresa onde estou trabalhando atualmente. Nessa equipe trabalhamos com &lt;strong&gt;Android Nativo&lt;/strong&gt; com &lt;strong&gt;Java&lt;/strong&gt; e &lt;strong&gt;Flutter&lt;/strong&gt;. Como eu não tinha muito conhecimento em desenvolvimento nativo, comecei a estudar e comecei a utilizar &lt;strong&gt;Kotlin&lt;/strong&gt; para ter acesso ao mundo do desenvolvimento de aplicativos Android. &lt;/p&gt;

&lt;p&gt;Apesar de eu gostar de desenvolvimento backend, volta e meia estou inserido no desenvolvimento de aplicativos, comecei com React Native, e após algumas escolhas próprias decidi mudar para Flutter e fui seguindo.  &lt;/p&gt;

&lt;p&gt;Agora com o estudo de Kotlin, pensei e registrar o meu desenvolvimento conforme eu vou estudando. Então hoje vou começar falando sobre tipos de variáveis.  &lt;/p&gt;

&lt;p&gt;Apesar de ter desenvolvido bastante em JavaScript, pessoalmente eu prefiro linguagens fortemente tipadas e por esse motivo eu migrei para TypeScript e venho desenvolvendo em NestJS com TypeScript desde então.&lt;/p&gt;

&lt;p&gt;Para quem está começando no mundo da programação, variável é um nome exclusivo que a identifica dentro do programa. O valor salvo que pode mudar durante a execução do programa. &lt;a href="https://ebaconline.com.br/blog/variaveis-na-programacao-seo#:~:text=Uma%20vari%C3%A1vel%20na%20programa%C3%A7%C3%A3o%20%C3%A9,booleanos%20e%20assim%20por%20diante." rel="noopener noreferrer"&gt;Ebac&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No Kotlin variáveis são estaticamente tipadas, o que significa que uma vez que você declarou o seu tipo, isso não pode ser mais alterado. E dentre os tipos básicos podemos ter os seguintes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Numbers (Números)&lt;/li&gt;
&lt;li&gt;Booleans (Booleanos)&lt;/li&gt;
&lt;li&gt;Characters (Caracteres)&lt;/li&gt;
&lt;li&gt;Strings (Sequência de Caracteres)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hoje eu falarei apenas do tipo Number, onde podemos ter valores inteiros e de ponto flutuante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Números Inteiros
&lt;/h3&gt;

&lt;p&gt;De acordo com Rafael C. Asth professor de matemática, os números inteiros são os números positivos e negativos, que não apresentam parte decimal e, o zero. &lt;a href="https://www.todamateria.com.br/numeros-inteiros/" rel="noopener noreferrer"&gt;Toda Matéria&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Entre os números inteiros, temos os seguintes tipos:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo&lt;/th&gt;
&lt;th&gt;Tamanho (bits)&lt;/th&gt;
&lt;th&gt;Valor Mínimo&lt;/th&gt;
&lt;th&gt;Valor Máximo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Byte&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;-128&lt;/td&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Short&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;-32768&lt;/td&gt;
&lt;td&gt;32767&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Int&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;-2,147,483,648 (-231)&lt;/td&gt;
&lt;td&gt;2,147,483,647 (231 - 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;-9,223,372,036,854,775,808 (-263)&lt;/td&gt;
&lt;td&gt;9,223,372,036,854,775,807 (263 - 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Em Kotlin quando você inicializa uma variável sem especificar o tipo, o compilador automaticamente infere o tipo com a menor tamanho à partir do tipo inteiro. Dependendo do tamanho do número o compilador pode inferir como Long.&lt;/p&gt;

&lt;p&gt;As variáveis podem começar com as palavras chaves &lt;strong&gt;val&lt;/strong&gt; e &lt;strong&gt;var&lt;/strong&gt;, sendo &lt;strong&gt;val&lt;/strong&gt; para variáveis que não irão mudar seus valores durante a execução do programa e &lt;strong&gt;var&lt;/strong&gt; para aquelas que poderão ter seus valores alterados.&lt;/p&gt;

&lt;p&gt;Segue um exemplo de tipagens com números inteiros:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;one&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;// Int&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;threeBillion&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000000000&lt;/span&gt; &lt;span class="c1"&gt;// Long&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;oneLong&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1L&lt;/span&gt; &lt;span class="c1"&gt;// Long&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima, todos os tipos foram inferidos pelo compilador. Agora segue um exemplo onde você pode definir o tipo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;one&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Byte&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;valueShort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Short&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;25000&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;valueInt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Int&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;600000&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;valueLong&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Long&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3000000000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Temos que ter um certo cuidado quando vamos definir o tipo da variável, pois o seu valor pode ultrapassar o seu limite máximo gerando um erro de tipagem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Números de Ponto Flutuante
&lt;/h3&gt;

&lt;p&gt;De acordo com Rafael C. Asth professor de matemática, os números reais podem ser representados de diversas formas, como: inteiros positivos e negativos, frações, decimais, notação científica, raízes, etc. &lt;a href="https://www.todamateria.com.br/numeros-reais/" rel="noopener noreferrer"&gt;Toda Matéria&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na computação definimos como números reais números que possuem casas decimais. Ex: 2.50 ou 3.14 ou 300000.85. Note que ao contrário do que estamos acostumados usamos ponto ao invés de vírgula.&lt;/p&gt;

&lt;p&gt;Kotlin provê dois tipos de ponto flutuantes, utilizando o padrão &lt;a href="https://en.wikipedia.org/wiki/IEEE_754" rel="noopener noreferrer"&gt;IEEE 754&lt;/a&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo&lt;/th&gt;
&lt;th&gt;Tamanho (bits)&lt;/th&gt;
&lt;th&gt;Bits Significativos&lt;/th&gt;
&lt;th&gt;Bits Expoentes&lt;/th&gt;
&lt;th&gt;Digitos Decimais&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6-7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;15-16&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Como ocorre com os números inteiros, quando você não específica um tipo para variável, o compilador por padrão infere o tipo Double. Sempre que você quiser definir o tipo Float, você deve colocar um f ao final número. Caso você defina um tipo como Float e não adicione o f ao final do número isso irá gerar um erro de tipagem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;pi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.14&lt;/span&gt; &lt;span class="c1"&gt;// Double&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;oneDouble&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="c1"&gt;// Double&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;floatValue&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;328.25f&lt;/span&gt; &lt;span class="c1"&gt;// Float &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você também pode decidir qual o tipo você quer utilizar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight kotlin"&gt;&lt;code&gt;&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Double&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.7182818284&lt;/span&gt; &lt;span class="c1"&gt;// Double&lt;/span&gt;
&lt;span class="kd"&gt;val&lt;/span&gt; &lt;span class="py"&gt;eFloat&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Float&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.7182818284f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O tipo Double é o mais utilizado quando se trata de números com pontos flutuantes.&lt;/p&gt;

&lt;p&gt;Vou ficando por aqui e espero que tenha dado uma noção sobre os tipos numéricos em Kotlin.&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>programação</category>
      <category>tipodedados</category>
    </item>
  </channel>
</rss>
