[日常] Go语言圣经-命令行参数
1.编译
go build hello.go
2.go get gopl.io/ch1/helloworld 命令,就会从网上获取代码,并放到对应目录中
下载的代码会放在$GOPATH/src/gopl.io/ch1/helloworld目录
3.Go语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。
4.Go语言在代码格式上采取了很强硬的态度。gofmt工具把代码格式化为标准格式
gofmt -w hello.go 重写回源文件
5.goimports,可以根据代码需要, 自动地添加或删除import声明
go get golang.org/x/tools/cmd/goimports (被墙不能用)
命令行参数:
1.os包以跨平台的方式,提供了一些与操作系统交互的函数和变量。程序的命令行参数可从os包的Args变量获取;os包外部使用os.Args访问该变量。
2.切片是Go语言的基础概念,现在先把切片s当作数组元素序列, 序列的长度动态变化, 用s[i]访问单个元素,用s[m:n]获取子序列,序列的元素数目为len(s)
a = [1, 2, 3, 4, 5], a[0:3] = [1, 2, 3]
3.os.Args的第一个元素,os.Args[0], 是命令本身的名字,其他参数是os.Args[1:len(os.Args)] => os.Args[1:]
4.import导入两个包,括号括起来
5.Go语言只有for循环这一种循环语句
for initialization; condition; post {
}
for condition {
}
for {//无限循环
}
package main import (
"fmt"
"os"
) func main() { //定义两个string类型的变量
var s, sep string
//短变量声明i
for i := 1; i < len(os.Args); i++ {
s += sep + os.Args[i]
sep = " "
}
fmt.Println(s) //练习 1.1: 修改echo程序,使其能够打印os.Args[0],即被执行命令本身的名字
s1,sep1:="",""
for i := 0; i < len(os.Args); i++ {
s1 += sep1 + os.Args[i]
sep1 = " "
}
fmt.Println(s1)
//输出 /tmp/go-build124823637/command-line-arguments/_obj/exe/echo1 tsh ni
u bi }
6.for循环的另一种形式, 在某种数据类型的区间(range)上遍历,如字符串或切片。
循环迭代,range产生一对值;索引以及在该索引处的元素值。
_空标识符丢弃索引,arg是索引所对应的值
7.使用strings包的Join函数
8.只是为了调试可以直接打印
fmt.Println(os.Args[1:])
package main import (
"fmt"
"os"
"strings"
) func main() {
s, sep := "", "" //短变量声明
//循环迭代,range产生一对值;索引以及在该索引处的元素值。
//_空标识符丢弃索引,arg是索引所对应的值
for _, arg := range os.Args[1:] {
s += sep + arg
sep = " "
} fmt.Println(s) //使用strings包的Join函数
fmt.Println(strings.Join(os.Args[0:], " ")) //只是为了调试可以直接打印
fmt.Println(os.Args[1:]) //练习 1.2: 修改echo程序,使其打印每个参数的索引和值,每个一行。
s1 := ""
sep1 := "\n"
for index, arg := range os.Args[1:] {
index := fmt.Sprintf("%d ", index) //int转string
s1 += index + arg
s1 += sep1 } fmt.Println(s1)
//输出 0 tsh 1 niu 2 bi }
[日常] Go语言圣经-命令行参数的更多相关文章
- R语言 使用命令行参数运行R程序
args_test.R 代码如下: Args <- commandArgs()cat("Args[1]=",Args[1],"\n")cat(" ...
- [Objective-C语言教程]命令行参数(23)
执行时,可以将一些值从命令行传递给Objective-C程序. 这些值称为命令行参数,很多时候它们对程序很重要,特别是当想要从外部控制程序而不是在代码中对这些值进行硬编码时就很有用了. 命令行参数使用 ...
- C语言讲解命令行参数
命令行(command line):是在命令行环境中,用户为运行程序输入命令的行. 命令行参数(command-line argument): 是同一行的附加项. C编译器允许main()没有参数或者 ...
- c语言中命令行参数argc,argv[]详解
main(int argc,char *argv[ ]) 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[ ...
- C语言/Linux命令行参数argc、argv[ ]详解
1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...
- Python 获得命令行参数的方法
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1 ...
- python中命令行参数
python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...
- 【C语言的日常实践(十二)】命令行参数
C计划main函数有两个参数.文章1一个通常被称为argc,它代表的命令行参数的个数. 第2个通常称为argv.它指向一组參数值. 指针数组:这个数组的每一个元素都是一个字符指针,数组的末尾是一个NU ...
- 我也要学C语言-第十九章:命令行参数
C语言的语法规定main函数是带连个参数的,因为当初是考虑是在控制台下写程序.于是用户可以给参数微控程序.其实现在的WINDOWS程序也可以带参数.一般正规军写的应该程序一般都带命令行参数,帮助文档, ...
随机推荐
- wpf控件拖动
Thumb 拖动 上代码! <Window x:Class="Thumb控件移动.MainWindow" xmlns="http://schemas.microso ...
- westrac server security configure user info
security userkey:westracpass:Set#@!123
- Linux下运行crm项目
虚拟环境运行crm项目 1.进入虚拟环境 2.解决crm项目运行所需的依赖环境 1.手动解决 pip3 install django==1.11.14 pip3 install pymysql pip ...
- poj3233 Matrix Power Series(矩阵快速幂)
题目要求的是 A+A2+...+Ak,而不是单个矩阵的幂. 那么可以构造一个分块的辅助矩阵 S,其中 A 为原矩阵,E 为单位矩阵,O 为0矩阵 将 S 取幂,会发现一个特性: Sk +1右上角 ...
- 无法启动此程序,因为计算机中丢失QtCored4.dll。尝试重新安装该程序以解决此问题。
在创建一个win32控制台应用程序时包含了QtCore中的头文件,并且程序编译成功(至少说明属性配置是正确的),运行此程序会出现弹出如下的一个系统错误: 这样的情况该怎么解决?提示说计算机中丢失了Qt ...
- avalon的使用与总结
avalon是前端MVVM框架,将所有前端代码彻底分成两部分,视图的处理通过绑定实现(angular有个更炫酷的名词叫指令),业务逻辑则集中在一个个叫VM的对象中处理.我们只要操作VM的数据,它就自然 ...
- 编写线程安全的Java缓存读写机制 (原创)
一种习以为常的缓存写法: IF value in cached THEN return value from cache ELSE compute value save value in cache ...
- postgresql模糊匹配正则表达式性能问题
postgresql 模糊匹配 目前建议使用like,~~,不建议使用正则表达式, 目前有性能问题 https://yq.aliyun.com/articles/405097 正则表达式效率比较低 ...
- POJ 2248
#include <iostream> #define MAXN 100 #define min __min using namespace std; int tem[MAXN]; int ...
- sql server 2012 数据库日志文件过大,怎么缩小?
最近发现网站不能访问,原因数据库服务器磁盘剩余空间没了.再细查发现日志文件占用了70%,收缩日志文件失败. 在网上查找原因,是没有备份不能收缩日志文件. 临时解决的方式: 备份事务日志,再收缩日志文件 ...