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. 1036 Boys vs Girls

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  2. 【网络协议】OSI七层模型 和TCP/IP五层模型

    OSI(Open System Interconnection)七层模型 TCP/IP 五层模型

  3. 「编程羽录」上线,程序员必备的这些技能你能get到嘛?

    大家好,我是小羽. 好久不见,给大家带来个好消息,小羽的全新专题「编程羽录」系列正式上新,主要是介绍一些关于面试题和经验总结的文章. 会为大家提供一些技术栈之外,程序员还需要的其他方面硬核知识,做到全 ...

  4. hdu4784 不错的搜索( 买卖盐,要求整钱最多)

    题意:       给你一个有向图,每个节点上都有一个盐价,然后给你k个空间,么个空间上节点与节点的距离不变,但盐价不同,对于每一个节点,有三种操作,卖一袋盐,买一袋盐 ,不交易,每一个节点可以跳掉( ...

  5. Windows PE导出表编程2(重组导出表函数地址)

    本次要做的尝试是通过修改导出表的函数地址,实现程序功能的更改,实现这个最大的限制就是堆栈平衡问题. 先写一个DLL和EXE为了测试. DLL代码如下: 这样的话有两个导出函数(我们假设是一个密码验证之 ...

  6. 【python】Leetcode每日一题-寻找旋转排序数组中的最小元素

    [python]Leetcode每日一题-寻找旋转排序数组中的最小元素 [题目描述] 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组nums ...

  7. No input file specified.问题的解决

    问题描述:apache配置网站出现问题"No input file specified." 解决1: 打开.htaccess 在RewriteRule 后面的index.php教程 ...

  8. C#中的类、方法和属性

    这节讲C#中的类,方法,属性.这是编码中我们最直接打交道的三个结构.      类: 类(class)是面向对象中最基本的单元,它是一种抽象,对现实世界中事物的抽象,在C#中使用class关键字声明一 ...

  9. windows的SEH异常处理以及顶层异常处理

    前言 windows的SEH结构化异常处理是基于线程的,传统的SEH结构化异常会基于堆栈形成一条包含异常回调函数地址的链(SEH链).而fs:[0](TEB的第一个字段)指向这条链的链头,当有异常发生 ...

  10. Python数模笔记-(1)NetworkX 图的操作

    1.NetworkX 图论与网络工具包 NetworkX 是基于 Python 语言的图论与复杂网络工具包,用于创建.操作和研究复杂网络的结构.动力学和功能. NetworkX 可以以标准和非标准的数 ...