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:], " "))
}
相关推荐
007php0071 天前
Git 操作偏门指南:常用和隐藏命令与问题解决
java·git·面试·职场和发展·golang·jenkins·php
li.wz1 天前
溯源数据清洗:一次由“可控”到“失控”的复盘
java·后端·doris
一路往蓝-Anbo1 天前
C语言从句柄到对象 (一) —— 全局变量的噩梦与“多实例”的救赎
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网
毕设源码-郭学长1 天前
【开题答辩全过程】以 基于springboot的健身房信息管理为例,包含答辩的问题和答案
java·spring boot·后端
低频电磁之道1 天前
C++中类的this指针
开发语言·c++
L Jiawen1 天前
【Web】RESTful风格
前端·后端·restful
用户6802659051191 天前
2026年企业级网络监控选型指南
javascript·后端·面试
Rysxt_1 天前
Spring Boot 4.0 新特性深度解析与实战教程
java·spring boot·后端
世转神风-1 天前
qt-通信协议基础-double转成QbyteArray-小端系统
开发语言·qt
程序员飞哥1 天前
2025 年的寒冬,我这个大龄程序员失业了
后端·程序员