Golang 入门

https://books.studygolang.com/gopl-zh/ch1/ch1-02.html

参考Go圣经

编译过程

go build
go run
在这里插入图片描述
1.

1.2 命令行参数

os.Args[1:]

在这里插入图片描述
获取方式一:

package main

import (
    "fmt"
    "os"
)

func main() {
   
	var s, sep string
	sep = " "
	// 程序的命令行参数可从os包的Args变量获取;os包外部使用os.Args访问该变量。
    for i := 1; i < len(os.Args); i++ {
   
    // os.Args变量是一个字符串(string)的切片
    // 用s[i]访问单个元素,用s[m:n]获取子序列。
        s += sep + os.Args[i]
    }
    fmt.Println(s)
}

获取方式二:

package main

import (
    "fmt"
    "os"
)

func main() {
   
    s, sep := "", " "
    // range 关键词获取一对值(index, value)
    // 丢弃不需要用到的index,用 _
    for _, arg := range os.Args[1:] {
   
        s += sep + arg
    }
    fmt.Println(s)
}

** 获取方式三 **

package main

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

func main() {
   
	// stirng.Join 函数连接字符串
	fmt.Println(strings.Join(os.Args[1:], " "))
}

练习

在这里插入图片描述

package main

import (
    "fmt"
	"os"
)
// 练习 1.1: 修改echo程序,使其能够打印os.Args[0],即被执行命令本身的名字。

// 练习 1.2: 修改echo程序,使其打印每个参数的索引和值,每个一行。

// 练习 1.3: 做实验测量潜在低效的版本和使用了strings.Join的版本的运行时间差异。(1.6节讲解了部分time包,11.4节展示了如何写标准测试程序,以得到系统性的性能评测。)
func main() {
   
	// 1.1
	fmt.Println("1,1 ", os.Args[0]);

	// 1.2
	for index, value := range os.Args[1:] {
   
		fmt.Println(index, "=", value);
	}

}

1.3. 查找重复的行

命令行输入

// 打印标准输入中多次出现的行,以重复次数开头
package main

import (
    "fmt"
	"os"
	"bufio" // 处理输入和输出	
)

func main() {
   
	// make 创建空map
	// map[key type]value type
	counts := make(map[string]int)

	// 读取输入
	inputs := bufio.NewScanner(os.Stdin
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值