Il linguaggio di programmazione Swift 5.9 introduce le macro e il concetto di proprietà

Date:

Share post:

Alessandro Manzoni
Alessandro Manzoni
Alessandro Manzoni scrive per Italnews.info occupandosi di attualità, politica, economia, tecnologia, sport, intrattenimento e lifestyle. Si concentra su informazioni chiare e affidabili, offrendo ai lettori contenuti utili per comprendere i fatti e le notizie più rilevanti del momento.

Quasi sei mesi dopo il rilascio di Swift 5.8, è stata rilasciata la versione 5.9 del linguaggio di programmazione open source di Apple. La versione attuale offre macro e ha una comunicazione bidirezionale con C++. Introduce inoltre i primi approcci al concetto di proprietà, che dovrebbe essere una parte fondamentale di Swift 6.

annuncio

Le macro aggiungono contenuto predefinito a parti del codice sorgente prima della compilazione. L’implementazione di Swift si basa più sul sistema macro di Rust che su semplici macro in C o C++, dove le macro sono semplici segnaposto per unità di testo che vengono sostituite prima della compilazione.

Swift 5.9 ha due tipi di Markos: autonomo e collegato. Con loro ci sono i primi # Eccellente, Swift richiama l’esecuzione della macro durante la compilazione. Il codice seguente lo utilizza function()–Macro dalla libreria standard Swift:

func myFunction(){
  print ("Das Programm befindet sich in der Funktion \(#function)")
}

Sostituisce la macro #function Secondo il nome della funzione, che il codice sopra restituisce “Il programma è nella funzione myFunction()”.

Le macro allegate aiutano, tra le altre cose, quando si lavora con i protocolli Swift, come mostra il seguente frammento di codice dalla documentazione di Swift OptionSet– Il protocollo viene popolato automaticamente con una serie di costanti:

// Makro-Variante 
@OptionSet<Int>
struct SundaeToppings {
  private enum Options: Int {
    case nuts
    case cherry
    case fudge
  }
}

// Manuelle Umsetzung ohne Makros
struct SundaeToppings: OptionSet {
  let rawValue: Int
  static let nuts = SundaeToppings(rawValue: 1 << 0)
  static let cherry = SundaeToppings(rawValue: 1 << 1)
  static let fudge = SundaeToppings(rawValue: 1 << 2)
}

Il compilatore Swift non sostituisce semplicemente il testo della macro, come fa con C o C++, ma richiama l’implementazione in questione.

(immagine: Documentazione veloce)

Un’altra importante innovazione è l’interoperabilità bidirezionale con C++, che consente di utilizzare funzioni esterne direttamente da Swift, come mostrato in un esempio tratto da un blog Swift che utilizza una funzione C++

// Clang module 'PromptResponder'
#pragma once
#include <vector>

std::vector<std::string> generatePromptResponse(std::string prompt);

Dalle chiamate SWIFT:

import PromptResponder

let codeLines = 
  generatePromptResponse("Write Swift code that prints hello world")
  .map(String.init)
  .filter { !$0.isEmpty }

for line in codeLines {
  print(line)
}

Swift 5.9 introduce anche i primi accenni al concetto di proprietà delle variabili, che non è così rigido e basilare come in Rust, ma dovrebbe aiutare a migliorare la gestione della memoria. In questo modo si elimina tra l’altro la necessità di calcolare i singoli riferimenti ai valori. Nuovo operatore consume Dichiara che una variabile è scaduta, in modo che la vecchia variabile perde la sua validità quando viene impostata. Secondo le istruzioni

let b = consume a

Include b Il valore del aE tentativi successivi a L’accesso causa un errore. L’operatore può essere utilizzato anche per creare una variabile

_ = consume a

Rilascia esplicitamente senza assegnare il valore a un altro. I parametri possono ora Piace borrowing O consuming È annunciato. Inoltre, Swift 5.9 Strutture ed enumerazioni non copiabili UN.

Altre innovazioni in Swift 5.9 come l’impacchettamento dei parametri per passare un numero flessibile di parametri e assegnazioni di variabili dirette nelle istruzioni if ​​e switch Può essere trovato sul blog di Swift.

Non ci sono informazioni nel post del blog sulla tabella di marcia aggiuntiva per la prossima major release, che ha già messo in ombra Swift 5.8.


(Romano)

Alla home page

Related articles

Planet Zoo 2 è disponibile su PC: oltre 130 specie animali, uccelli in volo e nuove riserve naturali

Planet Zoo 2 è ufficialmente disponibile dal 13 ottobre 2026 su PC. Frontier Developments ha pubblicato il nuovo...

Anthropic lancia l’allarme sull’intelligenza artificiale: potrebbe diffondersi attraverso forni smart e TV connesse

L'intelligenza artificiale potrebbe presto essere in grado di replicarsi autonomamente attraverso dispositivi elettronici collegati a Internet, sfruttando anche...

Salone dell’Auto di Parigi 2026: i costruttori europei rilanciano tra elettrificazione, tradizione e nuove sfide

Il Salone dell’Auto di Parigi 2026 segna una fase importante per l’industria automobilistica europea. Dopo anni caratterizzati dalla...

Equinozio d’autunno 2026: l’estate astronomica finisce il 23 settembre

L’estate astronomica si conclude e lascia spazio all’autunno. Nel 2026 il passaggio ufficiale alla nuova stagione avviene il...