美文网首页
1.2 命令行参数

1.2 命令行参数

作者: zzjack | 来源:发表于2017-10-10 17:31 被阅读0次

切片

go语言采用左闭右开的方式,即区间包括第一个索引元素,不包括最后一个。因为这样可以简化逻辑。

  • 比如,a=[1,2,3,4],a[0:3]=[1,2,3],不包含最后一个元素。
  • 比如s[m:n]这个切片,0 <= m <= n <= len(s),包含n-m个元素,产生第m个元素到第n-1元素的切片。

echo 1.0

package main
import(
  "fmt"
  "os"
)
func main(){
 var s,sep string
  for i := 1;i<len(os.Args);i++{
    s += sep + os.Args[i]
    sep = " "
  }
  fmt.Println(s)
}

这个程序很简单,书中指出当参数庞大时,这种写法开销很大。

echo 1.1

使用strings包的Join函数

func main(){
  fmt.Println(strings.Join(os.Args[1:]," "))
}

练习1.1

import (
    "fmt"
    "os"
    "strings"
)

func main(){
    fmt.Println(strings.Join(os.Args[:]," "))
}

练习1.2

import (
    "fmt"
    "os"
)

func main(){
    for seq,i := range os.Args[1:]{
        fmt.Println(seq,i)
    }
}

练习1.3

package main

import (
    "strconv"
    "strings"
    "time"
    "fmt"
)

type myfunction struct {
    limit int
}

func (this myfunction)level()[]string{
    var col []string
    for i:=0;i<this.limit;i++{
        square := i * i
        col = append(col,strconv.FormatInt(int64(square),10))
    }
    return col
}

func (this myfunction)high(){
    strings.Join(this.level()," ")
}

func (this myfunction)low(){
    var s string
    for _,i := range this.level(){
        s += i
        s += " "
    }
}

func main(){
    m := myfunction{limit:100000}
    ctime := time.Now().Unix()
    m.high()
    fmt.Println("high",time.Now().Unix() - ctime)
    ctime_low := time.Now().Unix()
    m.low()
    fmt.Println("low",time.Now().Unix() - ctime_low)
}

本来想用装饰器模式精简一下代码,可是我不会写。
用goland来跑,high在0秒以内,low用了65秒,差异确实很大。

相关文章

  • 1.2命令行参数

    命令行参数 os包提供了一些与操作系统交互的函数和变量,并且go对其做了一些封装。程序的命令行参数可以从os包的A...

  • 1.2 命令行参数

    切片 go语言采用左闭右开的方式,即区间包括第一个索引元素,不包括最后一个。因为这样可以简化逻辑。 比如,a=[1...

  • (十二)pytest.ini

    1、配置pytest命令行运行参数 1.1、-rsxX -l --tb=short -strict 1.2、ma...

  • python/pytest命令行自定义参数(pytest-fix

    1、python命令行接收参数1.1 脚本编写 1.2 配置文件其中config_env文件内容,其中注意[env...

  • 九、处理用户输入

    简单目录 1.命令行参数 2.处理命令行选项和命令行参数参数 3.read命令获取用户输入 1.命令行参数 在命令...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • 特殊变量列表

    特殊变量列表 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一...

  • Go 语言圣经读书笔记 第一章

    1.2 命令行参数 如果连接涉及的数据量很大,一种简单且搞笑的解决方案是使用strings 包的 Join 函数 ...

  • Java 命令行参数解析类库

    命令行参数解析类库1命令行参数解析类库2命令行参数解析类库3 JArgsJakarta Commons CLITE...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

网友评论

      本文标题:1.2 命令行参数

      本文链接:https://www.haomeiwen.com/subject/lykvyxtx.html