GO学习之入门语法

GO系列

1、GO学习之Hello World
2、GO学习之入门语法
3、GO学习之切片操作
4、GO学习之 Map 操作
5、GO学习之 结构体 操作
6、GO学习之 通道(Channel)
7、GO学习之 多线程(goroutine)
8、GO学习之 函数(Function)
9、GO学习之 接口(Interface)

前言

最近新老大找我聊天,谈到了开发语言,尤其是 GO,现在大厂基本都用 GO 开发了,圈子里面也是很火,这边就抓紧把这门语言学起来,以七八年 JAVA 开发经验的我来说,应该不算是难事,而且 GO 也有取经与 JAVA,《GO学习之Hello World》 中有介绍到。

一:基础数据类型

1.1 基本类型

常用的基本类型列举如下:

类型 长度 默认值 说明
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开始
  1. var 声明一个或者多个变量;
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)
}
  1. 声明一个数组
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])
	}
}

1.2 引用类型

类型 默认值 说明
slice nil 切片,是数组的一个引用,因此切片是引用类型,值拷贝传递,切片的长度是可变的,所以切片是一个可变的数组,类似 Java 中的 ArrayList
map nil 一种无序的基于key-vale 的数据结构,也就是Java 中的 Map 类似,是一个键值对的集合,Go语言中的Map是引用类型,必须初始化才能使用
channel nil Channel(管道)是用于Goroutines(轻量级线程) 之间的通信的一种特殊类型,Channel 有两个主要操作:发送(send)和接收(receive)。通过使用箭头运算符 <-,我们可以将数据发送到通道或从通道接收数据。
interface nil 接口
function nil 函数

二:流程控制

2.1 if else

package main
import (
	"fmt"
)
func main() {
    
    
	for n := 0; n < 20; n++ {
    
    
		if n%4 == 0 {
    
    
			fmt.Println(n)
		} else {
    
    
			fmt.Println("....")
		}
	}
}

2.2 for / range

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])
	}
}

2.3 switch

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)
}

2.4 goto

package main

import "fmt"

func main() {
    
    
	i := 0

start:
	fmt.Println(i)
	i++

	if i < 5 {
    
    
		goto start
	}

	fmt.Println("循环结束")
}

2.5 break / continue

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 语言的一个重要特性是并发编程支持。学习 GoroutinesChannels 的概念,了解如何使用它们进行高效的并发编程。

实践编程:在学习过程中,尝试编写一些简单的 Go 程序,以巩固你的知识。逐步尝试编写更复杂的程序,如 Web 服务器、数据库访问等。

学习标准库:了解 Go 语言的标准库,如 ioutil、fmt、net/http、os 等。标准库提供了丰富的功能,帮助你快速构建程序。

猜你喜欢

转载自blog.csdn.net/qq_19283249/article/details/131348442
今日推荐