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语言圣经-命令行参数的更多相关文章

  1. R语言 使用命令行参数运行R程序

    args_test.R 代码如下: Args <- commandArgs()cat("Args[1]=",Args[1],"\n")cat(" ...

  2. [Objective-C语言教程]命令行参数(23)

    执行时,可以将一些值从命令行传递给Objective-C程序. 这些值称为命令行参数,很多时候它们对程序很重要,特别是当想要从外部控制程序而不是在代码中对这些值进行硬编码时就很有用了. 命令行参数使用 ...

  3. C语言讲解命令行参数

    命令行(command line):是在命令行环境中,用户为运行程序输入命令的行. 命令行参数(command-line argument): 是同一行的附加项. C编译器允许main()没有参数或者 ...

  4. c语言中命令行参数argc,argv[]详解

    main(int argc,char *argv[ ]) 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[ ...

  5. C语言/Linux命令行参数argc、argv[ ]详解

    1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...

  6. Python 获得命令行参数的方法

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名:    sys.argv[0]参数1 ...

  7. python中命令行参数

    python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...

  8. 【C语言的日常实践(十二)】命令行参数

    C计划main函数有两个参数.文章1一个通常被称为argc,它代表的命令行参数的个数. 第2个通常称为argv.它指向一组參数值. 指针数组:这个数组的每一个元素都是一个字符指针,数组的末尾是一个NU ...

  9. 我也要学C语言-第十九章:命令行参数

    C语言的语法规定main函数是带连个参数的,因为当初是考虑是在控制台下写程序.于是用户可以给参数微控程序.其实现在的WINDOWS程序也可以带参数.一般正规军写的应该程序一般都带命令行参数,帮助文档, ...

随机推荐

  1. F#语言入门之什么是F#语言

    F#是一种函数式编程语言,可以轻松编写正确且可维护的代码. F#编程主要涉及定义类型推断和自动泛化的类型和函数. 这使您可以将焦点保留在问题域上并操纵其数据,而不是编程的细节. open System ...

  2. 枚举类型内部函数 enumerate

    enumerate()说明enumerate()是python的内置函数enumerate在字典上是枚举.列举的意思对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumera ...

  3. P3175 [HAOI2015]按位或

    传送门 一如既往膜拜shadowice巨巨 前置姿势我就没一个会的-- //minamoto #include<bits/stdc++.h> #define R register #def ...

  4. flask组件之flask_script和flask_migrate的使用

    flask_script的使用 作用: 使用命令启动flask项目 # 在项目的启动文件中 from flask import Flask from settings import Settings ...

  5. 栈的实现——java

    和C++一样,JDK包中也提供了"栈"的实现,它就是集合框架中的Stack类.关于Stack类的原理,在"Java 集合系列07之 Stack详细介绍(源码解析)和使用示 ...

  6. linux下程序编译出错解决方法

    一 *** No rule to make target 'subscribe_pkg/CMakeFiles/subscribe_pkg_node.dir/build'. 停止.CMakeFiles/ ...

  7. Linux零碎知识

    ln -s用法: 创建软连接,命令如下: ln -s / /home/good/linkname ln的链接分软链接和硬链接两种: .软链接就是:“ln –s 源文件 目标文件”,只会在选定的位置上生 ...

  8. 导入不用的css文件及在不同设备显示不用的html页面

    当一个页面对应有多个css样式文件时,我们可以根据地址栏的参数值而导入不同的css文件: function getCss() { var linkNode = document.createEleme ...

  9. POJ 1082

    #include <iostream> using namespace std; int main() { //freopen("acm.acm","r&qu ...

  10. eclip 重写从父类继承的方法的快捷操作

    转载自http://blog.sina.com.cn/s/blog_53d599430101phlo.html     一.在代码中单击鼠标右键,在弹出的快捷菜单中选择“源代码(Source)”-&g ...