Kontrakter er på vej til Googles Go-sprog

7. august 2019 kl. 11:22
Kontrakter er på vej til Googles Go-sprog
Illustration: Bigstock/REDPIXEL.PL.
Go har kig på kontrakter, som skal anvendes til at indføre type-parametre i sproget.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Googles sprog Go vil i et nyt udkast tilføje kontrakter til sproget. Det skal bruges til at indføre type-parametre i sproget.

Det skriver udviklerbloggen Infoq.

Kontrakter, som som det kendes fra sproget Eiffel, handler som oftest om strengere guards eller 'pre-conditions' ved funktionskald, og post-conditions, der tjekker såkaldt invariant opførsel inde i selve en funktions krop.

Men i Go implementeres kontrakter for at parametrisere typer og funktioner. Go's udviklere benytter termen 'generics', men betoner, at der ikke menes det samme med begrebet, som i sprog som C++, C#, Java eller Rust.

Artiklen fortsætter efter annoncen

En kontrakt i Go skrives ved at angive de typer, som passer sammen med kontrakten. En funktion, der returnerer et minimum at to værdier, kan implementeres ved at definere en kontrakt, der inkluderer alle typer, som har en <-operator, som i eksemplet herunder.

  1. contract Ordered(T) {
  2. T int, int8, int16, int32, int64,
  3. uint, uint8, uint16, uint32, uint64, uintptr,
  4. float32, float64,
  5. string
  6. }
  7.  
  8. func Min (type T Ordered) (a, b T) T {
  9. if a < b {
  10. return a
  11. }
  12. return b
  13. }

Når funktionen kaldes, angives både en type og en værdi, så som Min(int)(2,-7).

Designerne bag ideen mener, at det på denne måde bliver api'ets skaber, der skal håndtere kompleksiteten, og ikke api'ets brugere.

Ingen kommentarer endnu.  Start debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger