golang之flag.String

  无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作。如:./main -b /home/backupdir -d true

  那么如何更好的解析这些参数呢?前两周自己做项目时是通过 range os.Args 来解析这些参数。今天看到了 flag.String 这个方法,感觉之前做的好傻,觉得更应该用golang自带的flag.String来解析参数。

 1 package main
 2
 3 import (
 4     "flag"
 5     "fmt"
 6 )
 7
 8 func main() {
 9     backup_dir := flag.String("b", "/home/default_dir", "backup path")
10     debug_mode := flag.Bool("d", false, "debug mode")
11
12     flag.Parse()
13
14     fmt.Println("backup_dir: ", *backup_dir)
15     fmt.Println("debug_mode: ", *debug_mode)
16 }
17
18 /**
19     启动命令:go run main.go -b /home/backup
20     输出结果:
21         backup_dir:  /home/backup  // 因为指定了路径,所以覆盖了默认路径
22         debug_mode:  false         // 启动命令里带 -d 参数,所以启用默认值
23  */
时间: 2024-11-05 06:06:22

golang之flag.String的相关文章

golang 之 flag.String

无论是c语言还是golang语言或是其他语言,启动应用程序时都可以带一些参数,然后系统根据传入的参数进行特点的工作.如:./main -b /home/backupdir -d true 那么如何更好的解析这些参数呢?前两周自己做项目时是通过 range os.Args 来解析这些参数.今天看到了 flag.String 这个方法,感觉之前做的好傻,觉得更应该用golang自带的flag.String来解析参数. package main import ( "flag" "f

GoLang中flag标签使用

正如其他语言一样,在 linux 系统上通过传入不同的参数来使得代码执行不同逻辑实现不同功能,这样的优点就是执行想要的既定逻辑而不需要修改代码重新编译与打包.在 Golang 语言中也为我们提供了相应的功能,直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myPro

Go_16:GoLang中flag标签使用

直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myProgram [-s server] [-t isShowTimeStamps] <subject> \n") } func printMsg(message string) { log.P

golang的flag包

package main import ( "flag" "fmt" ) var ( root = flag.String("root", "/var/lib/docker/fakevol", "fake volumes root directory") ) func main() { wordPtr := flag.String("word", "foo", &qu

golang Time to String

golang Time to String allenhaozi · 2016-09-02 09:00:00 · 2447 次点击 · 预计阅读时间 1 分钟 · 19分钟之前 开始浏览 这是一个创建于 2016-09-02 09:00:00 的文章,其中的信息可能已经有所发展或是发生改变. package main import ( "fmt" "time" ) // @link https://golang.org/pkg/time/ func main() {

golang []byte 和 string相互转换

原文链接:golang []byte和string相互转换 测试例子 package main import ( "fmt" ) func main() { str2 := "hello" data2 := []byte(str2) fmt.Println(data2) str2 = string(data2[:]) fmt.Println(str2) } 测试结果: [[email protected] ]# go run d.go [104 101 108 10

golang []byte转string

golang中,字符切片[]byte转换成string最简单的方式是 package main import ( "fmt" _ "unsafe" ) func main() { bytes := []byte("I am byte array !") str := string(bytes) bytes[0] = 'i'//注意这一行,bytes在这里修改了数据,但是str打印出来的依然没变化, fmt.Println(str) } 打印信息:

golang byte转string 字节数组转字符串的问题

golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,他只是在这个基础上又加了一些概念这里说一个很小的问题,就是字节数组转string的问题,网上大部分都是这样转的(包括google上):string(p[:]),这个转完了是有问题的,我们再来看一下string这个结构体: struct String{        byte*   str;        intgo   len;}; 这个结构体让我想起了nginx的string,他是这样定

golang array, slice, string笔记

本来想写一篇关于golang io的笔记,但是在学习io之前必须了解array, slice, string概念,因此将在下篇写golang io. array: 数组的长度是该数组类型的一部分,例如var buffer [256]byte 的类型是[256]byte, len(buffer)总是返回256. slice: 一个slice描述一个数组中连续的一部分,例如var slice = buffer[100:250].slice也可以从slice产生,如var slice2 = slice