goprintf/main.go

25 lines
429 B
Go

package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
format := os.Args[1]
args := os.Args[2:]
printfs := make([]any, len(args))
for i := range args {
var v interface{}
printfs[i] = args[i]
if err := json.Unmarshal([]byte(args[i]), &v); err != nil {
} else if _, ok := v.(map[string]any); ok {
} else if _, ok := v.([]any); ok {
} else {
printfs[i] = v
}
}
fmt.Printf(format, printfs...)
}