{"id":13108,"date":"2017-09-04T10:46:00","date_gmt":"2017-09-04T08:46:00","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=13108"},"modified":"2017-09-04T10:46:00","modified_gmt":"2017-09-04T08:46:00","slug":"gli-array-in-kotlin","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/gli-array-in-kotlin\/","title":{"rendered":"Gli Array in Kotlin"},"content":{"rendered":"<p>Anche in Kotlin, come in molti altri linguaggi,<strong> la struttura dati basilare \u00e8 l&#8217;Array<\/strong>. Si tratta di oggetti in grado di gestire un insieme di variabili di tipo omogeneo.<\/p>\n<p>Il linguaggio mette a disposizione diversi metodi per poter<strong> inizializzare un array<\/strong>. Quello che segue mostra la preparazione di un vettore di interi con lo svolgimento, a carattere dimostrativo, di alcune operazioni basilari:<\/p>\n<pre class=\"lang:java decode:true \">\/\/ inizializzazione di un Array di interi\r\nval x=arrayOf(23,65,12,45);\r\n\r\n\/\/ stampa dell'elemento in seconda posizione: valore 65\r\nprintln(x[1])\r\n\t\r\n\/\/ modifica del valore in terza posizione\r\nx[2]=99\r\n\t\r\nprintln(\"\\nStampa tutto array...\")\r\nfor (i in x)\r\n   println(i)<\/pre>\n<p>Con <em>arrayOf<\/em> passeremo solo i valori: in automatico, sar\u00e0 poi determinato il tipo di dato da attribuire ai valori che, in questo caso, sar\u00e0 un Integer.<\/p>\n<p>Con le <strong>parentesi quadre [&#8230;]<\/strong> \u00e8 possibile accedere ai valori sia in lettura sia in scrittura come altri linguaggi ci hanno gi\u00e0 abituato. Interessante, alla fine dello script, vedere come sia immediato <strong>iterare su tutti i valori<\/strong> di un Array grazie al <strong>ciclo for<\/strong>.<\/p>\n<p>Qualora i valori passati alla funzione\u00a0<em>arrayOf<\/em> fossero di tipi diversi, Kotlin istituirebbe un array di <em>Object<\/em> dove ogni singolo elemento all&#8217;interno verrebbe identificato con il tipo di dato pi\u00f9 adatto. Ad esempio, la seguente dichiarazione:<\/p>\n<pre class=\"lang:java decode:true \">val x=arrayOf(23,true,12,45.98);<\/pre>\n<p>verrebbe cos\u00ec rappresentata nel <em>debugger<\/em> di Eclipse:<\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/06\/kotlin-java-android-array-eclipse_img_01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13112\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/06\/kotlin-java-android-array-eclipse_img_01.jpg\" alt=\"\" width=\"630\" height=\"206\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/06\/kotlin-java-android-array-eclipse_img_01.jpg 630w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/06\/kotlin-java-android-array-eclipse_img_01-300x98.jpg 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p>Esistono <strong>altre funzioni per l&#8217;inizializzazione<\/strong> di array, tuttavia:<\/p>\n<ul>\n<li>con il metodo <em><strong>arrayOfNulls<\/strong> <\/em>si pu\u00f2 richiedere la definizione di un array di elementi in numero e tipo da noi specificato. Tutti gli elementi saranno inizializzati a <em>null<\/em>:\n<pre class=\"lang:java decode:true \">val n=arrayOfNulls&lt;Boolean&gt;(20)<\/pre>\n<p>In tal modo, definiamo un array vuoto di venti oggetti booleani;<\/li>\n<li>altre classi, non derivanti dalla classe Array, esistono specificamente per definire array di un tipo particolare di dato: <em>ByteArray<\/em>, <em>IntArray<\/em> e cos\u00ec via. Ognuna di esse dispone di un <em>metodo factory<\/em> per la definizione rapida:\n<pre class=\"lang:java decode:true\">val t=intArrayOf(23,58,12,91)<\/pre>\n<\/li>\n<\/ul>\n<p>Questa \u00e8 solo una breve introduzione agli array in Kotlin, oggetti immancabili in ogni linguaggio. Li vedremo presto al lavoro nei prossimi tutorial su questo linguaggio: continuate a seguirci!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anche in Kotlin, come in molti altri linguaggi, la struttura dati basilare \u00e8 l&#8217;Array. Si tratta di&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13086,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1682,1],"tags":[1973,1941,1526,1971,1972,1967,1968],"class_list":["post-13108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-tutorial-pratici","tag-array","tag-ciclo-for","tag-java","tag-java-vrtual-machine","tag-jre","tag-jvm","tag-kotlin"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=13108"}],"version-history":[{"count":1,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13108\/revisions"}],"predecessor-version":[{"id":13113,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13108\/revisions\/13113"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13086"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=13108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=13108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=13108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}