【Golang】基础语法总结

本文是关于Golang的基础语法总结,包括变量、数据类型(NUMBER,STRING,BOOLEAN,ARRAYS,SLICES,MAPS)、类型转换、条件表达式、循环、指针、函数、方法、结构体、接口、包管理、异常处理(error,Panic,Defer)以及并发(Go routines,channel)等内容。通过实例展示了Golang的关键特性和用法。
摘要由CSDN通过智能技术生成

写在前面

Go 语言是一门开源语言,能够轻松的构建简单,可靠,高效的软件。—— Golang

为什么笔者在深入学习java和python以后任然坚持使用golang,因为每个语言的特性不一样,其适应的场合也不尽相同。毕竟大家时间都这么宝贵,何必不用最合适的语言做最合适的事情,个中滋味自己体会。下面就快速把go语言的特性再次总结一下。方便复习或者入门

基础总结

  • Golang由包组成。Golang编译器将main包编译为可执行文件,而非共享库。main包是应用的入口,通常被定义如下
package main
  • 语言第一波helloworld,新建main.go文件如下;fmt是Go内置的格式化I/O函数。
package main
import (
    "fmt"
)
func main(){
   
    fmt.Println("Hello World!")
}
  • 编译 main.go, 编译完成会生成一个main的可执行文件
go build main.go
  • 运行main文件

./main

或者

go run main.go

变量

  • 强类型变量,int 为例,这里默认为0
var a int
  • 变量赋值
var a = 1
  • 变量赋值简化
message := "hello world"
  • 多变量同时赋值
var b, c int = 2, 3

数据类型

NUMBER,STRING, BOOLEAN

int 的类型有 int, int8, int16, int32, int64, unit, unit8, unit16, unit 32, unit64, unitptr…

bool 关键字表示布尔类型。

Golang 也支持复数,用conplex64和complex128表示。

var a bool = true
vat b int = 1
var c string = "hello world"
var d float32 = 1.222
var x complex128 = cmplx.Sqrt(-5 +12i)

ARRAYS,SLICES,MAPS

Array 是同类型元素的数组。Array在声明的时候会指定长度且不能改变。定义一个固定长度为3的数组:

var a[3] int

多维数组定义

var multiD [2][3]int

Slices 是能随时扩容的同类型元素的序列 。Slice的声明方式如下定义一个长度为0 的slices:

var b []int

或者定义一个有容量和长度的,长度为5,容量为10。

numbers := make([]int, 5, 10)

Slice是数组的封装,其内部实现是数组,slice有三个元素,容量,长度和指向内部数组的指针。
Slice的容量可以通过append 或者 copy函数增加。Append函数也能在数组的末尾添加元素,在容量不足的情况下会对slice扩容。

如下

numbers = append(numbers, 12, 34)

另一种增加slice容量的方式是使用copy函数。Copy函数的原理是创建一个新的大容量的slice,并把原有的slice拷贝到新的slice中。

number2 := make([]int, 15)
copy(number2, number)

在这里插入图片描述

基于一个slice创建一个子slice


package main
 import (
     "fmt"
 )
 func main() {
   
     // 初始化slice
     number2 := []int{
   1, 2, 3, 4}
     fmt.Println(number2) // -> [1 2 3 4]
     // 创建子slice
     slice1 := number2[2:]
     fmt.Println(slice1) // -> [3 4]
     slice2 := number2[:3]
     fmt.Println(slice2) // -> [1 2 3]
     slice3 := number2[1:4]
     fmt.Println(slice3) // -> [2 3 4]
 }

map 键值对的定义

var m map[string]int

我们来创建一个key是string value是int的例子

package main

 import (
     "fmt"
 )

 func main() {
   
     m := make(map[string]int)
     // 添加键值对
     m["clearity"] = 2
     m["simplicity"] = 3
     // 打印值
     fmt.Println(m["clearity"])   // -> 2
     fmt.Println(m["simplicity"]) // -> 3
 }

类型转换

使用类型转换来转变一个数据类型

package main

 import (
     "fmt"
 )
 func increment(i *int) {
   
     *i++
 }

 func main() {
   
     a := 1.1
     b := int(a)
     fmt.Println(b)
     //-> 1
 }

同时我们可以使用如下两种方法来查看相关类型,具体原理后续我们在仔细理解

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值