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

2024-03-17 20:58

本文主要是介绍[日常] 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 mainimport ("fmt""os"
)func main() {//定义两个string类型的变量var s, sep string//短变量声明ifor 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 mainimport ("fmt""os""strings"
)func main() {s, sep := "", "" //短变量声明//循环迭代,range产生一对值;索引以及在该索引处的元素值。//_空标识符丢弃索引,arg是索引所对应的值for _, arg := range os.Args[1:] {s += sep + argsep = " "}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转strings1 += index + args1 += sep1}fmt.Println(s1)//输出 0 tsh 1 niu 2 bi}

  

这篇关于[日常] Go语言圣经-命令行参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820138

相关文章

Java线程池核心参数原理及使用指南

《Java线程池核心参数原理及使用指南》本文详细介绍了Java线程池的基本概念、核心类、核心参数、工作原理、常见类型以及最佳实践,通过理解每个参数的含义和工作原理,可以更好地配置线程池,提高系统性能,... 目录一、线程池概述1.1 什么是线程池1.2 线程池的优势二、线程池核心类三、ThreadPoolE

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

Go 使用环境变量的实现小结

《Go使用环境变量的实现小结》作为软件开发人员,在项目中管理配置变量的重要性,本文主要介绍在Golang中处理环境变量的强大工具github.com/joho/godotenv包,利用这个包,你可以... 目录步js骤 1:安装步骤 2:制作 .env 文件步骤android 3:加载环境变量步骤 4:利用

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql