golang 初始化并赋值_Golang快速入门:从菜鸟变大佬

本文是Golang的基础教程,介绍了Go的工作区、变量声明、数据类型、数组、分片、映射Map、类型转换、条件语句、循环、指针、函数、方法、结构体、接口、包管理和并发等内容,帮助读者快速掌握Go语言。
摘要由CSDN通过智能技术生成

最近写了不少Go代码,但是写着写着,还是容易忘,尤其是再写点Python代码后。所以找了一篇不错的Golang基础教程,翻译一下,时常看看。

原文链接: 「Learning Go — from zero to hero」 by Milap Neupane

开始

Go是由各种 包 组成的。main包是程序的入口,由它告诉编译器,这是一个可执行程序,而不是共享包。main包定义如下:

package main

工作区

Go的工作区是由环境变量GOPATH决定的。
你可以在工作区里随心所欲地写代码,Go会在GOPATH或者GOROOT目录下搜索包。注:GOROOT是Go的安装路径。

设置GOPATH为你想要的目录:

# export 环境变量
export GOPATH=~/workspace
# 进入工作区目录
cd ~/workspace

在工作区目录里创建mian.go文件。

package main

import (
 "fmt"
)

func main(){
  fmt.Println("Hello World!")
}

我们使用import关键字来引入一个包。func main是执行代码的入口,fmt是Go的内置包,主要用来格式化输入/输出。而Println是fnt中的一个打印函数。

想要运行Go程序,有两种方法。

方法一

大家都知道,Go是一门编译型语言,所以在执行之前,我们需要先编译它。

> go build main.go

这个命令会生成二进制可执行文件 main,然后我们再运行它。

> ./main 
# Hello World!

方法二

一个go run命令就可以搞定。

go run main.go
# Hello World!

注意:你可以在这个网站执行本文中的代码。

变量

Go中的变量都是显式声明的。Go是静态语言,因此声明变量时,就会去检查变量的类型。

变量声明有以下三种方式。

# 1) a的默认值为0
var a int

# 2) 声明并初始化a,a自动赋值为int
var a = 1

# 3) 简写声明
message := "hello world"

还可以在一行声明多个变量

var b, c int = 2, 3

数据类型

数字,字符串 和 布尔型

Go 支持的数字存储类型有很多,比如 int, int8, int16, int32, int64,uint, uint8, uint16, uint32, uint64, uintptr 等等。

字符串类型存储一个字节序列。使用string关键字来声明。

布尔型使用bool声明。

Go还支持复数类型数据类型,可以使用complex64complex128进行声明。

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

数组, 分片 和 映射Map

数组是包含同一数据类型的元素序列,在声明时确定数组长度,因此不能随意扩展。

数组的声明方式如下:

var a [5]int

多维数组的声明方式如下:

var multiD [2][3]int

Go中的数组有一定限制,比如不能修改数组长度、不能添加元素、不能获取子数组。这时候,更适合使用slice[分片]这一类型。

分片用于存储一组元素,允许随时扩展其长度。分片的声明类似数组,只是去掉了长度声明。

var b []int

这行代码会创建一个 0容量、0长度的分片。也可以使用以下代码 设置分片的容量和长度。

// 初始化一个长度为5,容量为10的分片
numbers := make([]int,5,10)

实际上,分片是对数组的抽象。分片使用数组作为底层结构。一个分片由三部分组成:容量、长度和指向底层数组的指针。

47395f73005eaf04497c4202ff5ff16f.png

使用append或者copy方法可以扩大分片的容量。append方法在分片的末尾追加元素,必要时会扩大分片容量。

numbers = append(numbers, 1, 2, 3, 4)

还可以使用copy方法来扩大容量。

// 创建一个更大容量的分片
numb
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值