zoukankan      html  css  js  c++  java
  • go语言的引号和获得命令行参数(类似-help 参数那样)

    引号作用

     1 package main
     2 
     3 import (
     4     "fmt"
     5 )
     6 
     7 func main() {
     8 
     9     fmt.Println("")        //字符串
    10     fmt.Println('')        //序号显示
    11     fmt.Println(`我  好`)     //原样输出  保留原格式
    12 }

    获得命令行参数

     1 package main
     2 
     3 import (
     4     "fmt"
     5     "os"
     6 )
     7 
     8 func main() {
     9 
    10     //获得命令行参数: 简易版
    11     fmt.Println(os.Args)
    12     for i,v := range os.Args{
    13         fmt.Println(i,v)
    14     }
    15 
    16 
    17     
    18 
    19 }

    运行命令时指定参数(类似-help 这样内容)

     1 // go run 02.go -name 小小 -age 90 -rmb 120000 -alive false
     2 
     3 package main
     4 
     5 import (
     6     "flag"
     7     "fmt"
     8 )
     9 
    10 func main() {
    11 
    12     //获得命令行参数
    13     //定义列名,定义默认数值,定义注释
    14     name :=flag.String("name","默认名字","姓氏名谁")
    15     age := flag.Int("age",100,"年龄")
    16     rmb := flag.Float64("rmb",10000,"资产")
    17     alive :=flag.Bool("alive",true,"还活着呢吗")
    18 
    19     //解析胡获取参数
    20     flag.Parse()
    21     //丢入参数的指针中
    22     fmt.Println(*name,*age,*rmb,*alive)
    23 
    24 
    25 }

    重要 定义程序的命令行参数

     1 //定义传参数的 定义参数
     2 //类似常用的 ./test -file /tmp/file.josn
     3 //go run 02.go -name 小小 -age 90 -rmb 120000 -alive false
     4 package main
     5 
     6 import (
     7     "flag"
     8     "fmt"
     9 )
    10 
    11 func main() {
    12 
    13     var (
    14         name  string
    15         age   int
    16         rmb   float64
    17         alive bool
    18     )
    19 
    20     //获得命令行参数
    21     //定义列名,定义默认数值,定义注释
    22     flag.StringVar(&name, "name", "默认名字", "姓氏名谁")
    23     flag.IntVar(&age, "age", 100, "年龄")
    24     flag.Float64Var(&rmb, "rmb", 10000, "资产")
    25     flag.BoolVar(&alive, "alive", true, "还活着呢吗")
    26 
    27     //解析胡获取参数
    28     flag.Parse()
    29     fmt.Println(name, age, rmb, alive)
    30 
    31 }


     人格测试例子

     1 /*
     2 人格测试需求
     3 从命令行输入测试者信息如下
     4 renge.exe -姓名 xxx -星座 xxx -年龄 40  -人民币 100 -认为自己傻 true
     5 keys:
     6 人格与资格成正比,与年龄成反比
     7 姓名如果在四个字以上,人格成绩*=1.05
     8 觉得自己个蠢猪的,人格成绩*=1.1
     9 年纪一把,没钱,还觉得自己挺聪明的,人格成绩*=0.8
    10 星座:天蝎座,摩羯,水瓶 人格成绩*=1.05 处女座*=0.95
    11 人格系数: 以40万/40岁为1
    12 
    13 */
    14 
    15 package main
    16 
    17 import (
    18     "flag"
    19     "fmt"
    20 )
    21 
    22 func main() {
    23     score := GetRenge(GetCmdArgs())
    24     fmt.Println("您的评分是", score)
    25 
    26     switch {
    27     case score > 90:
    28         fmt.Println("膜拜大神66666....")
    29 
    30     case score >= 60 && score < 90:
    31         fmt.Println("你很一般....")
    32 
    33     default:
    34         fmt.Println("垃圾.....")
    35     }
    36 
    37 }
    38 
    39 //人格成绩公式
    40 func GetRenge(name, xingzuo string, age, rmb float64, sha bool) (score float64) {
    41 
    42     //姓名如果在四个字以上,人格成绩*=1.05
    43     if len(name) > 3*4 {
    44         score *= 1.05
    45     }
    46 
    47     //星座:天蝎座,摩羯,水瓶 人格成绩*=1.05 处女座*=0.95
    48     switch xingzuo {
    49     case "天蝎", "天蝎座", "摩羯", "摩羯座", "水瓶", "水瓶座":
    50         score *= 1.05
    51     case "处女", "处女座":
    52         score *= 0.95
    53     }
    54 
    55     //觉得自己个蠢猪的,人格成绩*=1.1
    56     if sha {
    57         score *= 1.1
    58 
    59     }
    60 
    61     //年纪一把,没钱,还觉得自己挺聪明的,人格成绩*=0.8
    62     if age > 30 && rmb < 400000 && !sha {
    63         score *= 0.8
    64     }
    65 
    66     //人格系数: 以40万/40岁为1
    67     StdIndex := 1 / (400000.0 / 40.0)
    68 
    69     //人格与资格成正比,与年龄成反比
    70     score *= StdIndex * rmb / age
    71     return score
    72 
    73 }
    74 
    75 //定义参数命令提示
    76 func GetCmdArgs() (name, xingzuo string, age, rmb float64, sha bool) {
    77 
    78     flag.StringVar(&name, "name", "无名氏", "测试者的姓名:")
    79     flag.StringVar(&xingzuo, "xingzuo", "", "测试者的星座:")
    80     flag.Float64Var(&age, "age", 0, "测试者的年龄:")
    81     flag.Float64Var(&rmb, "rmb", 0, "测试者的财产:")
    82     flag.BoolVar(&sha, "sha", true, "是否认为自己傻:")
    83 
    84     flag.Parse() //解析一下
    85     return name, xingzuo, age, rmb, sha
    86 
    87 }
  • 相关阅读:
    java基础—GUI编程(一)
    java基础—数组
    java基础—异常处理
    java基础—面向对象
    多线程(二)
    多线程(一)
    ORACLE数据库SQL语句的执行过程
    Jetty直接调试,不用部署,不用弄一些杂七杂八的设置
    (2.1)servlet线程安全问题
    (3)tomcat源代码分析环境的搭建
  • 原文地址:https://www.cnblogs.com/chaoyangxu/p/11909951.html
Copyright © 2011-2022 走看看