您现在的位置是:首页 > GO语言教程 > 正文

Go语言简单入门示例代码详解

编辑:本站更新:2024-05-07 09:38:14人气:2801
在深入探讨Go语言的编程世界之前,让我们先通过一些基础且实用的示例代码来体验一下其简洁明了、高效并行的设计哲学。下面将对几个关键概念和特性进行详细解读,并提供相应的实例以供学习参考。

**1. Hello World! 程序**

每个程序员接触新语言的第一步往往是输出“Hello, world!”,在Go中也不例外:

go

package main

import "fmt"

func main() {
fmt.Println("你好, 世界!")
}

此段程序首先定义包名为`main`(这是所有可执行 Go 应用都需要的部分),然后导入"fmt"库用于格式化输入/输出操作,在主函数 `main()` 中调用了它的`Println()`方法打印出问候语。

**2. 变量声明与类型推断**

Go支持变量类型的显式或隐式声明。例如,

go

var message string = "欢迎来到Go的世界"
message := "这是一个简短声明方式赋值给字符串变量的例子"
number := 456 // 类型为int,默认由编译器自动判断


第二个例子展示了:=运算符结合使用时可以省略 var 关键字及数据类型,Go会依据右侧表达式的类型自行确定左侧变量的数据类型,这被称为简短声明。

**3. 控制结构:条件语句 & 循环**

以下是一个简单的if-else逻辑控制块以及for循环使用的样例:

go

age := 18
if age >= 18 {
fmt.Println("你已成年")
} else {
fmt.Println("你还未成年")
}

// for loop 示例:
sum := 0
for i := 1; i <= 10; i++ {
sum += i
}
fmt.Printf("从1到10之和是:%d\n", sum)


**4. 函数定义与返回值**

在Go里创建自定义函数非常直观:

go

func add(x int, y int) int {
return x + y
}

result := add(10, 20)
fmt.Println(result) // 输出:30

该add函数接收两个整数参数并返回它们相加的结果。

**5. 并发性 - Goroutines 和 Channels**

并发处理是Golang的一大亮点功能之一。以下是goroutine和channel的基本应用案例:

go

func worker(id int, jobs <-chan int, results chan<- int) {
for j := range jobs {
time.Sleep(time.Second * 1) // 模拟耗时任务
fmt.Printf("Worker %v received job %v.\n", id, j)
results <- j*j // 将结果发送回results通道
}
}

func main() {
jobs := make(chan int, 100)
results := make(chan int)

go func() { // 启动一个匿名 goroutine 发送工作项
for w := 1; w <= 9; w++ {
jobs <- w
}
close(jobs) // 工作全部分配完毕后关闭jobs通道
}()

for i := 0; i < 3; i++ {
go worker(i, jobs, results) // 创建三个worker协程
}

// 遍历收集结果
for a := 1; a <= 9; a++ {
<-results
println()
}
}

这段代码演示了一个典型的生产者消费者模型场景,利用goroutine实现多线程计算并将结果显示至指定通道。

总结来说,以上仅触及到了Go语言众多特性和优势的一小部分,但足以展示它清晰而强大的语法体系以及对于系统级开发的高度友好和支持。随着更深层次的学习实践,你会发现更多如接口设计、错误处理机制等高级话题让Go成为现代软件工程中的强大工具选择。
关注公众号

www.php580.com PHP工作室 - 全面的PHP教程、实例、框架与实战资源

PHP学习网是专注于PHP技术学习的一站式在线平台,提供丰富全面的PHP教程、深入浅出的实例解析、主流PHP框架详解及实战应用,并涵盖PHP面试指南、最新资讯和活跃的PHP开发者社区。无论您是初学者还是进阶者,这里都有助于提升您的PHP编程技能。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

最新推荐

本月推荐