Initial commit: Go 1.23 release state
This commit is contained in:
57
src/flag/example_func_test.go
Normal file
57
src/flag/example_func_test.go
Normal file
@@ -0,0 +1,57 @@
|
||||
// Copyright 2020 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package flag_test
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
)
|
||||
|
||||
func ExampleFunc() {
|
||||
fs := flag.NewFlagSet("ExampleFunc", flag.ContinueOnError)
|
||||
fs.SetOutput(os.Stdout)
|
||||
var ip net.IP
|
||||
fs.Func("ip", "`IP address` to parse", func(s string) error {
|
||||
ip = net.ParseIP(s)
|
||||
if ip == nil {
|
||||
return errors.New("could not parse IP")
|
||||
}
|
||||
return nil
|
||||
})
|
||||
fs.Parse([]string{"-ip", "127.0.0.1"})
|
||||
fmt.Printf("{ip: %v, loopback: %t}\n\n", ip, ip.IsLoopback())
|
||||
|
||||
// 256 is not a valid IPv4 component
|
||||
fs.Parse([]string{"-ip", "256.0.0.1"})
|
||||
fmt.Printf("{ip: %v, loopback: %t}\n\n", ip, ip.IsLoopback())
|
||||
|
||||
// Output:
|
||||
// {ip: 127.0.0.1, loopback: true}
|
||||
//
|
||||
// invalid value "256.0.0.1" for flag -ip: could not parse IP
|
||||
// Usage of ExampleFunc:
|
||||
// -ip IP address
|
||||
// IP address to parse
|
||||
// {ip: <nil>, loopback: false}
|
||||
}
|
||||
|
||||
func ExampleBoolFunc() {
|
||||
fs := flag.NewFlagSet("ExampleBoolFunc", flag.ContinueOnError)
|
||||
fs.SetOutput(os.Stdout)
|
||||
|
||||
fs.BoolFunc("log", "logs a dummy message", func(s string) error {
|
||||
fmt.Println("dummy message:", s)
|
||||
return nil
|
||||
})
|
||||
fs.Parse([]string{"-log"})
|
||||
fs.Parse([]string{"-log=0"})
|
||||
|
||||
// Output:
|
||||
// dummy message: true
|
||||
// dummy message: 0
|
||||
}
|
||||
Reference in New Issue
Block a user