GO学习之入门语法

GO系列

1、GO学习之Hello World
2、GO学习之入门语法

文章目录

  • GO系列
  • 前言
  • 一:基础数据类型
    • 1.1 基本类型
    • 1.2 引用类型
  • 二:基本操作
    • 2.1 if else
    • 2.2 for / range
    • 2.3 switch
    • 2.4 goto
    • 2.5 break / continue
  • 三:总结

前言

最近新老大找我聊天,谈到了开发语言,尤其是 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 等。标准库提供了丰富的功能,帮助你快速构建程序。

你可能感兴趣的:(golang学习,golang,后端)