package main

import (
"flag"
"fmt"
"math"
"os"
) /*
go build xxx.go 编译产生同名的exe文件(在当前文件夹下)
go run xxx.go 编译执行二合一(产生的exe文件在临时目录下)
go builde -o yoursister.exe xxx.go 编译产生yoursister.exe文件(在当前文件夹下)
*/ /*简易获取命令行参数:获取命令行上输入的所有字符串*/
func main031() {
fmt.Println(os.Args) //获取rmb参数
for i,arg := range os.Args{
if arg == "rmb"{
fmt.Println("rmb=",os.Args[i+1])
break
}
}
} //yoursister -name 如花 -age 18 -rmb 0.5 -married true
func main032() { //定义一个字符串类型的命令行参数:参数名称name,参数默认值“无名氏”,作用“你妹芳名”
//得到一个将来存储name参数的值的地址/指针
namePtr := flag.String("name","无名氏","你妹芳名") //定义了整型命令行参数age
agePtr := flag.Int("age", 0, "你妹芳龄") //定义浮点型命令行参数rmb
rmbPtr := flag.Float64("rmb", 0, "你妹资产") //定义布尔型命令行参数married
marriedPtr := flag.Bool("married", false, "你妹婚否") //解析获取参数值
flag.Parse() fmt.Println(*namePtr,*agePtr,*rmbPtr,*marriedPtr) //根据你妹的具体信息求得你妹的受欢迎指数
//...
} //yoursister -name 如花 -age 18 -rmb 0.5 -married true
func main() {
var name string//"" 有地址
var age int//0
var rmb float64
var married bool /*定义命令行参数*/
flag.StringVar(&name,"name","无名氏","你妹芳名")
flag.IntVar(&age,"age",0,"你妹芳龄")
flag.Float64Var(&rmb,"rmb",0,"你妹资产")
flag.BoolVar(&married,"married",false,"你妹婚否") //解析获取参数值
flag.Parse()
fmt.Println(name,age,rmb,married) //评估你妹的受欢迎程度
popularity := GetPopularity(name, age, rmb, married)
fmt.Printf("你妹的受欢迎程度是%d%%\n",popularity)
} /*评估某人的受欢迎程度*/
func GetPopularity(name string,age int,rmb float64,married bool) int{ //预设受欢迎程度为60
var popularity float64 = 60.0 //如果名字是四个字以上,受欢迎程度*=1.1
if len(name) >= 3*4{
popularity *= 1.1
} //越有钱越受欢迎(以5万为60分,每增加1万,魅力值+=1)
popularity += (rmb-50000)/10000 //越年轻越受欢迎
popularity *= (35.0/float64(age)) //如果已婚,受欢迎程度*=0.5
if married {
popularity *= 0.5
} return int(math.Round(popularity))
} func test() {
//fmt.Println(len("西门如花"))
fmt.Println(GetPopularity("西门耶律不花",20,50000,false))
fmt.Println(GetPopularity("翠花",80,0.5,true))
}

  

GO语言常用标准库04---flag读取命令行参数的更多相关文章

  1. GO语言常用标准库03---time包

    package main import ( "fmt" "time" ) func main021() { nowTime := time.Now() fmt. ...

  2. GO语言常用标准库02---os包

    package main import ( "fmt" "os" ) func main() { //获得当前工作路径(当前工程根目录) dir, err := ...

  3. GO语言常用标准库01---strings包

    package main import ( "fmt" "strings" ) func main031() { fmt.Printf("字符形式:% ...

  4. C语言常用的库文件(头文件、函数库)

    C语言常用的库文件(头文件.函数库) C系统提供了丰富的系统文件,称为库文件.C的库文件分为两类,一类是扩展名为".h"的文件,称为头文件,在前面的包含命令中我们已多次使用过.在& ...

  5. 一文说透 Go 语言 HTTP 标准库

    本篇文章来分析一下 Go 语言 HTTP 标准库是如何实现的. 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/561 ...

  6. py常用标准库

    functools python3中增加了更多工具函数,做业务开发时大多情况下用不到,记录一个比较常用的,给函数或者对象初始化参数 partial函数(偏函数) 把一个函数的某些参数设置默认值,返回一 ...

  7. 【循序渐进学Python】11.常用标准库

    安装完Python之后,我们也同时获得了强大的Python标准库,通过使用这些标准库可以为我们节省大量的时间.这里是一些常用标准库的简单说明.更多的标准库的说明,可以参考Python文档 sys 模块 ...

  8. 第二章 函数编程&常用标准库

    函数编程&常用标准库                                                                                       ...

  9. nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模块的Javascript

    Javascrip本身不带IO功能,nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模 ...

随机推荐

  1. kafka listeners和advertised配置

    kafka  listeners和advertised配置 kafka版本:kafka_2.11-2.3.0 kafka配置listeners # The address the socket ser ...

  2. 【译】Android API 规范

    [译]Android API 规范 译者按: 修改R代码遇到Lint tool的报错,搜到了这篇文档,aosp仓库地址:Android API Guidelines. 58e9b5f Project ...

  3. Python中如何生成requirements.txt文件

    Python项目中一般都包含一个名为 requirements.txt 文件,用来记录当前项目所有的依赖包和版本号,在一个新环境下通过该文件可以更方便的构建项目所需要的运行环境. 生成requirem ...

  4. hdu4421 2-sat(枚举二进制每一位)

    题意:       给你一个数组b[][],在给你一些关系,问是否可以找到一个满足限制的a[], 关系如下(图片): 思路:       说到限制,而且还是两个两个之间的限制,那么很容易想到2-sat ...

  5. Linux下逻辑卷LVM的管理和RAID磁盘阵列

    目录 LVM 一:LVM的创建 二:LVM的拉伸 三:LVM的缩小 四:LVM的删除 五:RAID磁盘阵列的添加 LVM LVM(Logical Volume Manager) 逻辑卷管理器,可以动态 ...

  6. hdu4845 状态压缩BFS

    题意:      给一个n*m的矩阵,从11,走到nm,格子和格子之间可能有墙,也可能有门,有的格子上面有钥匙,相应的钥匙开相应的们,捡钥匙和开门都不需要时间,问你最少多少部能走到nm. 思路:   ...

  7. Windows核心编程笔记之处理字符串

    0x01 ANSI 和宽字符定义 // ANSI 字符定义 CHAR varChar_1 = 'a'; // #typedef char CHAR CHAR varChar_2[] = "A ...

  8. XCTF-unfinish

    unfinish 之前做过这个题,这是之前写的WP:链接

  9. 【phpstorm】Server's certificate is not trusted

    问题描述 phpstorm 一直跳出 问题解决 file-->Settings然后搜索Server Certificates,选中框打钩

  10. vscode 将本地项目上传到github、从github克隆项目以及删除github上的某个文件夹

    一.将本地项目上传到github 1.创建本地仓库(文件夹) mkdir study//创建文件夹studycd study //进入study文件夹 2.通过命令git init把这个文件夹变成Gi ...