Documentation | Contributing | Code of Conduct
import "atomicgo.dev/f"
F is the closest thing to template literals in Go.
F is a simple, fast and safe way to format strings in Go, with a familiar syntax. It evaluates expressions inside `${}` and replaces them with their values.
The expressions support many operators, including ternary operator, and function calls. See the syntax here: https://expr.medv.io/docs/Language-Definition
Example (Demo)
package main
import (
"fmt"
"atomicgo.dev/f"
)
type Person struct {
Name string
Age int
}
func main() {
// Format a string with a struct
john := Person{Name: "Bob", Age: 22}
fmt.Println(f.Format("${Name} is ${Age} years old", john))
// Format a string with a map
alice := map[string]any{"Name": "Alice", "Age": 27}
fmt.Println(f.Format("${Name} is ${Age} years old", alice))
// Evaluate an expression
fmt.Println(f.Format("John is 22 years old: ${Age == 22}", john))
// Ternary operator
fmt.Println(f.Format("John is 22 years old: ${Age == 22 ? 'yes' : 'no'}", john))
}
Bob is 22 years old
Alice is 27 years old
John is 22 years old: true
John is 22 years old: yes
- func Format(template string, data ...any) string
- func FormatSafe(template string, data ...any) (string, error)
- type Parsed
- type Part
func Format
func Format(template string, data ...any) string
Format formats the template string.
func FormatSafe
func FormatSafe(template string, data ...any) (string, error)
FormatSafe formats the template string and returns an additional, optional error, if something goes wrong.
type Parsed
Parsed contains a parsed template string, ready to be evaluated.
type Parsed struct {
Template string
Parts []Part
}
func Parse
func Parse(template string) Parsed
Parse parses a template string into a Parsed struct.
func (Parsed) Eval
func (parsed Parsed) Eval(data any) (string, error)
Eval evaluated expressions in the parsed template string.
func (Parsed) String
func (parsed Parsed) String() string
String returns the parsed template parts as a single string.
type Part
Part is a single part of a template string. Can either be a raw string, or an expression.
type Part struct {
Value string
Parsed bool
}
Generated by gomarkdoc
AtomicGo.dev · with ❤️ by @MarvinJWendt | MarvinJWendt.com