<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pointer | www.valeriofinazzo.it</title>
	<atom:link href="http://www.valeriofinazzo.it/wordpress/tag/pointer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.valeriofinazzo.it/wordpress</link>
	<description>Il sito dell&#039;ingegnere Valerio Finazzo</description>
	<lastBuildDate>Fri, 30 Oct 2020 16:41:45 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>TUTORIAL GO &#8211; TIPI COMPLESSI STRUCTS E POINTER</title>
		<link>http://www.valeriofinazzo.it/wordpress/2020/08/tutorial-go-tipi-complessi-structs-e-pointer/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 07 Aug 2020 14:59:39 +0000</pubDate>
				<category><![CDATA[GOLANG]]></category>
		<category><![CDATA[GO]]></category>
		<category><![CDATA[pointer]]></category>
		<category><![CDATA[puntatori]]></category>
		<category><![CDATA[structs]]></category>
		<category><![CDATA[strutture]]></category>
		<guid isPermaLink="false">http://www.valeriofinazzo.it/wordpress/?p=601</guid>

					<description><![CDATA[<p>Nell&#8217;articolo precedente abbiamo visto i tipi semplici messi a disposizione da GO, in questo vediamo come definire delle strutture dati più complesse. Go mette a disposizione il comando type che consente di definire delle strutture, ovvero collezioni di dati Tramite il comando type persona struct ho definito una struttura dati chiamata persona che presenta 2 &#8230; <a href="http://www.valeriofinazzo.it/wordpress/2020/08/tutorial-go-tipi-complessi-structs-e-pointer/" class="more-link">Continua la lettura di <span class="screen-reader-text">TUTORIAL GO &#8211; TIPI COMPLESSI STRUCTS E POINTER</span> <span class="meta-nav">&#8594;</span></a></p>
The post <a href="http://www.valeriofinazzo.it/wordpress/2020/08/tutorial-go-tipi-complessi-structs-e-pointer/">TUTORIAL GO – TIPI COMPLESSI STRUCTS E POINTER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></description>
										<content:encoded><![CDATA[<p>Nell&#8217;articolo precedente abbiamo visto i tipi semplici messi a disposizione da GO, in questo vediamo come definire delle strutture dati più complesse. Go mette a disposizione il comando type che consente di definire delle strutture, ovvero collezioni di dati</p>



<pre class="crayon-plain-tag">package main

import &quot;fmt&quot;

type persona struct {
	nome    string
	cognome string
}

func main() {

	var io persona
	io.cognome = &quot;finazzo&quot;
	io.nome = &quot;valerio&quot;
	fmt.Println(io)
	var sempreio = persona{&quot;valerio&quot;, &quot;finazzo&quot;}
	fmt.Println(sempreio)
	var ancoraio = persona{nome: &quot;valerio&quot;, cognome: &quot;finazzo&quot;}
	fmt.Println(ancoraio)
}</pre>



<p>Tramite il comando<em> type persona struct</em> ho definito una struttura dati chiamata persona che presenta 2 attributi nome e cognome di tipo string. Nel main ho instanziato la variabile persona e valorizzato gli attributi opportunamente usando il . per accedere alle sue varibili. Go permette di inizializzare direttamente l&#8217;oggetto tramite il nome stesso della struttura passando direttamente i valori, oppure specificando i valori con la coppia nome valore separati da :.</p>



<p>Go supporta i puntatori, ovvero il riferimento a zone di memoria per accedere al valore contenuto in esso. I comandi per gestire i puntatori sono * e &amp;.</p>



<pre class="crayon-plain-tag">var puntatoreame *persona = &amp;amp;io
	fmt.Println(puntatoreame.nome, puntatoreame.cognome)
	puntatoreame.cognome = &quot;finazzo2&quot;
	fmt.Println(puntatoreame.nome, puntatoreame.cognome)
	fmt.Println(io.nome, io.cognome)

	var nuovamenteio persona = io
	fmt.Println(nuovamenteio)
	nuovamenteio.cognome = &quot;finazzo3&quot;
	fmt.Println(nuovamenteio.nome, nuovamenteio.cognome)
	fmt.Println(io.nome, io.cognome)</pre>



<p>Tramite * definisco un puntatore verso una struttura di tipo persona e tramite &amp; la inizializzo verso la zona di memoria occupata dalla struttura io. A questo punto agisco su uno degli attributi di puntatoreame e vedrò le modifiche attive anche su io.</p>



<p>Il blocco successivo che non usa i puntatori crea una nuova variabile che ha gli stessi valori ma le modifiche che faccio successivamente non si ripercuotono sulla istanza io.</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&amp;linkname=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&amp;linkname=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&amp;linkname=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&amp;linkname=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_google_gmail" href="https://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&amp;linkname=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" title="Gmail" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=http%3A%2F%2Fwww.valeriofinazzo.it%2Fwordpress%2F2020%2F08%2Ftutorial-go-tipi-complessi-structs-e-pointer%2F&#038;title=TUTORIAL%20GO%20%E2%80%93%20TIPI%20COMPLESSI%20STRUCTS%20E%20POINTER" data-a2a-url="http://www.valeriofinazzo.it/wordpress/2020/08/tutorial-go-tipi-complessi-structs-e-pointer/" data-a2a-title="TUTORIAL GO – TIPI COMPLESSI STRUCTS E POINTER"></a></p>The post <a href="http://www.valeriofinazzo.it/wordpress/2020/08/tutorial-go-tipi-complessi-structs-e-pointer/">TUTORIAL GO – TIPI COMPLESSI STRUCTS E POINTER</a> first appeared on <a href="http://www.valeriofinazzo.it/wordpress">www.valeriofinazzo.it</a>.]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
