For the complete documentation index, see llms.txt. This page is also available as Markdown.

🌯Wrapper Types

Wrapper types are equivalent to "Named Types" in Golang

Wrapper Type Syntax

wrapper <existing type to be wrapped> <Wrapper type name>

Working Example

package main

import "fmt" as fmt

wrapper Int Dollars

fun addDollars(currentAmount: Dollars, amountToAdd: Int): Dollars {
  return Dollars(((Int)(currentAmount)) + amountToAdd)
}

fun printDollars(amount: Dollars): Unit {
  fmt.println(amount)
}

fun main(): Unit {
  let dollarsIHave = Dollars(100)
  let newAmount = addDollars(dollarsIHave, 900)
  printDollars(newAmount)
}
package main

import fmt "fmt"

type dollars int

func addDollars(currentAmount dollars, amountToAdd int) dollars {

        return dollars((int(currentAmount)) + amountToAdd)

}

func printDollars(amount dollars) {
        fmt.Println(amount)

}

func main() {
        dollarsIHave := dollars(100)
        newAmount := addDollars(dollarsIHave, 900)
        printDollars(newAmount)
        // Eliminates any 'unused variable' errors
        _, _ = dollarsIHave, newAmount

}

Last updated