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:], " "))
}
相关推荐
乌鸦乌鸦你的小虎牙35 分钟前
qt 5.12.8 配置报错(交叉编译环境)
开发语言·数据库·qt
feifeigo12344 分钟前
Leslie人口模型MATLAB实现(中长期人口预测)
开发语言·matlab
写代码的二次猿1 小时前
安装openfold(顺利解决版)
开发语言·python·深度学习
ezreal_pan1 小时前
弹窗缓存重构技术方案
缓存·重构·golang
一只大袋鼠1 小时前
Redis 安装+基于短信验证码登录功能的完整实现
java·开发语言·数据库·redis·缓存·学习笔记
※DX3906※2 小时前
Java排序算法--全面详解面试中涉及的排序
java·开发语言·数据结构·面试·排序算法
笨笨马甲3 小时前
Qt QSS使用指南
开发语言·qt
Nan_Shu_6144 小时前
学习: 尚硅谷Java项目之小谷充电宝(3)
java·后端·学习
智能工业品检测-奇妙智能4 小时前
AIFlowy如何实现与现有Spring Boot项目的无缝集成?
java·spring boot·后端
We་ct4 小时前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝