1、GO学习之Hello World
2、GO学习之入门语法
最近新老大找我聊天,谈到了开发语言,尤其是 GO,现在大厂基本都用 GO 开发了,圈子里面也是很火,这边就抓紧把这门语言学起来,以七八年 JAVA 开发经验的我来说,应该不算是难事,而且 GO 也有取经与 JAVA,《GO学习之Hello World》 中有介绍到。
常用的基本类型列举如下:
类型 | 长度 | 默认值 | 说明 |
---|---|---|---|
string | “” | UTF-8 字符串 | |
bool | 1 | false | 布尔类型 |
byte | 1 | 0 | 和 uint8 一样 |
rune | 4 | 0 | 和 int32 一样 |
int, uint | 4或者8 | 0 | 32位或者64位 |
int8 | 1 | 0 | -128 ~ 127,byte是uint8的别名 |
int16 | 2 | 0 | -32768 ~ 32767 |
int32 | 4 | 0 | -21亿~ 21亿,rune是int32 的别名 |
int64 | 8 | 0 | … |
uint8 | 1 | 0 | 0 ~ 255 |
uint16 | 2 | 0 | 0 ~ 65535 |
uint32 | 4 | 0 | 0 ~ 42亿 |
uint64 | 8 | 0 | … |
float32 | 4 | 0.0 | |
float64 | 8 | 0.0 | |
array | 数组是具有相同唯一类型的一组以编号且长度固定的数据项序列,元素可通过索引(下标)来读取或操作,索引从0开始 |
package main
import (
"fmt"
)
func main() {
var a = "start"
// 什么变量 b 和 c, 赋值 2 和 3
var b, c int = 2, 3
fmt.Println(a)
fmt.Println(b, c)
var d = true
// 声明变量 e ,初始值为 0
var e int
fmt.Println(d)
fmt.Println(e)
// 声明变量 f ,值是 字符串 apple
f := "apple"
fmt.Println(f)
// 声明多个变量
var (
m string
n int
x bool
)
fmt.Println("m:", m)
fmt.Println("n", n)
fmt.Println("x", x)
}
package main
import "fmt"
func main() {
var arr1 [5]int
for i := 0; i < len(arr1); i++ {
arr1[i] = i * 2
}
for i := 0; i < len(arr1); i++ {
fmt.Printf("第 %d 个元素是 %d \n", i, arr1[i])
}
// range方式操作
for i, _ := range arr1 {
fmt.Printf("第 %d 个元素是 %d \n", i, arr1[i])
}
}
类型 | 默认值 | 说明 |
---|---|---|
slice | nil | 切片,是数组的一个引用,因此切片是引用类型,值拷贝传递,切片的长度是可变的,所以切片是一个可变的数组,类似 Java 中的 ArrayList |
map | nil | 一种无序的基于key-vale 的数据结构,也就是Java 中的 Map 类似,是一个键值对的集合,Go语言中的Map是引用类型,必须初始化才能使用 |
channel | nil | Channel(管道)是用于Goroutines(轻量级线程) 之间的通信的一种特殊类型,Channel 有两个主要操作:发送(send)和接收(receive)。通过使用箭头运算符 <-,我们可以将数据发送到通道或从通道接收数据。 |
interface | nil | 接口 |
function | nil | 函数 |
package main
import (
"fmt"
)
func main() {
for n := 0; n < 20; n++ {
if n%4 == 0 {
fmt.Println(n)
} else {
fmt.Println("....")
}
}
}
func main() {
var arr1 [5]int
for i := 0; i < len(arr1); i++ {
arr1[i] = i * 2
}
for i := 0; i < len(arr1); i++ {
fmt.Printf("第 %d 个元素是 %d \n", i, arr1[i])
}
// range方式操作
for i, _ := range arr1 {
fmt.Printf("第 %d 个元素是 %d \n", i, arr1[i])
}
}
package main
import (
"fmt"
)
func main() {
var grade string = "B"
switch {
case grade == "A":
fmt.Printf("优秀!\n")
case grade == "B", grade == "C":
fmt.Printf("良好\n")
case grade == "D":
fmt.Printf("及格\n")
case grade == "F":
fmt.Printf("不及格\n")
default:
fmt.Printf("差\n")
}
fmt.Printf("你的等级是 %s\n", grade)
}
package main
import "fmt"
func main() {
i := 0
start:
fmt.Println(i)
i++
if i < 5 {
goto start
}
fmt.Println("循环结束")
}
package main
import "fmt"
func main() {
for i := 0; i < 20; i++ {
if i > 10 {
break
}
if i%2 == 0 {
fmt.Println(i, "继续")
continue
}
}
}
此篇仅仅对 GO 语言的基本数据类型和基本的操作进行简单入门,自己对 GO 的语言也有了一丢丢的认识,不过从事研发很多年,程序执行也就 顺序,分支,循环这三种方式,更高阶的内容慢慢补充,最好在实践中磨练。
当然这也只是冰山一角,那要怎么学习 GO 呢?
了解 Go 语言:首先,了解 Go 语言的基本概念和其用途。Go 是一种静态类型、编译型的编程语言,旨在提高软件开发的效率。它特别适用于并发和分布式系统开发。
学习基础语法:学习 Go 语言的基础语法,包括变量、常量、数据类型、函数、控制结构(如 if-else 和循环)、指针、结构体和接口等。
学习并发编程:Go 语言的一个重要特性是并发编程支持。学习 Goroutines 和 Channels 的概念,了解如何使用它们进行高效的并发编程。
实践编程:在学习过程中,尝试编写一些简单的 Go 程序,以巩固你的知识。逐步尝试编写更复杂的程序,如 Web 服务器、数据库访问等。
学习标准库:了解 Go 语言的标准库,如 ioutil、fmt、net/http、os 等。标准库提供了丰富的功能,帮助你快速构建程序。