go 语言程序设计第1章--入门

1.1 hello, world

helloworld.go

go 复制代码
package main

import "fmt"

func main() {
	fmt.Println("Hello, World")
}

执行 go run helloworld.go 运行程序。

构建和执行.

bash 复制代码
go build helloworld.go 
./helloworld

1.2 命令行参数

变量 os.Args 是一个字符串 slice.

echo1.go

go 复制代码
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)
}

变量如果在声明时没有初始化,它将隐式地初始化为这个类型的空值。例如,对于数字化初始化结果是0,对于字符串是空字符串 "".

for 是 Go 里面的唯一循环语句。有几种形式。

for initialization; condition; post {

// 零个或多个语句

}

// 传统的 "while" 循环

for condition {

//

}

// 传统的无限循环

for {

// ...

}

另一种形式的 for 循环在字符串或 slice 数据上迭代。

echo2.go

go 复制代码
package main

import (
	"fmt"
	"os"
)

func main() {
	s, sep := "", ""
	for _, arg := range os.Args[1:] {
		s += sep + arg
		sep = " "
	}
	fmt.Println(s)
}

以下几种声明字符串变量的方式是等价的:

复制代码
s := ""
var s string
var s = ""
var s string = ""

echo3.go

go 复制代码
package main

import (
	"fmt"
	"os"
)
func main() {
	fmt.Println(strings.Join(os.Args[1:], " "))
}
相关推荐
躺不平的理查德1 小时前
Windows C++ 第三方库使用流程备忘录--OpenCV
开发语言·c++
菜冻鱼1 小时前
Python-sklearn-评估指标
开发语言·人工智能·python·机器学习·numpy·pandas·sklearn
你挚爱的强哥2 小时前
【exportExcel】单纯靠js不用任何其他第三方插件导出xls格式文件
开发语言·javascript·ecmascript
Hello_Damon_Nikola2 小时前
AC7911从入门到精通
开发语言·嵌入式硬件·物联网·php
圣殿骑士-Khtangc2 小时前
Go-Map面试核心考点从哈希冲突到并发安全的完整解析
面试·golang·哈希算法
worxfr2 小时前
Go 并发控制:从 Channel 方向约束到实战模式
开发语言·后端·golang
带鱼吃猫2 小时前
预处理器:宏、运算符与条件编译
c语言·开发语言
拾陆楼2 小时前
PT: DMSA辅助调tree报告前后级余量脚本
后端·学习
今天的砖头有点烫手啊2 小时前
接口太慢?Spring Boot 缓存体系 @Cacheable 全链路拆解
spring boot·后端·缓存
小小龙学IT2 小时前
C++ std::vector 底层实现深度解析:内存布局、扩容策略、移动语义与迭代器失效
开发语言·c++·算法