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:], " "))
}
相关推荐
IT_陈寒4 小时前
SpringBoot自动配置的坑,我的API突然就404了
前端·人工智能·后端
ServBay5 小时前
为什么说 MCP 是 2026 年开发者必须掌握的黄金协议?
后端·mcp
程序员夏洛5 小时前
Spring Boot 多模块项目中 IDEA 提示 Cannot resolve symbol 的一次排查记录
后端
子兮曰5 小时前
OpenMontage 深度解剖:你的 AI 编程助手,其实是个视频工作室
前端·后端·ai编程
子兮曰5 小时前
前端工具链的「Rust 化」:一场没有赢家的军备竞赛?
前端·后端·rust
爱勇宝6 小时前
从 Ctrl+CV 到 Enter:程序员正在失去什么
前端·后端·程序员
码事漫谈7 小时前
EdgeOne Makers + WorkBuddy:零基础也能快速搭建可上线的 AI 智能体(附图文教程)
后端
像我这样帅的人丶你还7 小时前
Java 后端详解(四):分页与搜索
java·javascript·后端
她的男孩7 小时前
数据权限为什么不能只靠注解?Forge 的 Mapper 层 SQL 改写源码拆解
java·后端·架构