• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[日常]Go语言圣经-命令行参数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

}

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
渗透测试之kali下安装go环境发布时间:2022-07-10
下一篇:
Go语言Gin-1.路由发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap