4

一文熟悉 Go 的基础语法和基本数据类型

 1 year ago
source link: https://blog.51cto.com/u_15878295/5881763
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

耐心和持久胜过激烈和狂热。

快速上手一门新的语言,首先要做的就是熟悉新语言的基本语法和基本数据类型,本文将对 Go 语言的基础语法和基本数据类型进行介绍。

Hello,World!

记得当初学习 C 语言的时候,第一个演示程序是输出 ​​Hello World!​​,Go 官网的第一个案例也是输出 ​​Hello,World!​​。

package main // 包声明

import "fmt" // 包导入

// func 函数关键字
func main() {
fmt.Println("Hello,World!")
}

从 ​​Hello,World!​​ 输出案例可知:

  • 声明包的关键字是 ​​package​​ 。
  • 导包的关键字是 ​​import​​。
  • 使用包里面的函数以 ​​包名.函数​​ 这种格式进行。
  • 函数的声明关键字是 ​​func​​。

有关 main 函数的一些要点

  • ​main​​ 函数必须在 ​​main​​ 包里。
  • 当 ​​main​​ 函数所在的文件被命名为 ​​main.go​​ 时,可以直接使用 ​​go run ./main.go​​ 命令直接运行程序。
  • 当 ​​main​​ 函数所在的文件名字不为 ​​main.go​​,需要分以下两种情况,假设所在文件的名字为 ​​a.go​​。
  • 1、当 ​​a.go​​ 文件里没有引用其他文件的变量等元素时,可以直接使用 ​​go run ./a.go​​ 运行。
package main // 包声明

import "fmt" // 包导入

// func 函数关键字
func main() {
fmt.Println("Hello,World!")
}
D:\go_projects\src\go_basic> go run .\main.go
Hello,World!
  • 2、当 ​​a.go​​​ 文件里有引用其他文件的变量等元素时,需要先使用 ​​go build ./a.go ./b.go​​​ 生成可执行文件,再运行 ​​exe​​ 可执行文件。
package main // a.go 文件

import "fmt"

func main() {
fmt.Println(name)
}
package main // b.go 文件

var name string = "cmy"
D:\go_projects\src\go_basic> go run .\a.go
# command-line-arguments
.\a.go:6:14: undefined: name
D:\go_projects\src\go_basic> go build .\a.go .\b.go
D:\go_projects\src\go_basic> ls

目录: D:\go_projects\src\go_basic
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2022-11-23 1:39 .idea
-a---- 2022-11-23 2:03 1950720 a.exe
-a---- 2022-11-23 1:50 63 a.go
-a---- 2022-11-23 1:52 38 b.go
-a---- 2022-11-23 1:57 127 main.go

D:\go_projects\src\go_basic> .\a.exe
cmy

除了上面提到的几个关键字以外,Go 语言还有其他关键字,一共 25 个关键字。

一文熟悉 Go 的基础语法和基本数据类型_Go

package

  • 语法格式: ​​package xxx​​。
package main
  • 包名字由英文或英文与下划线组合组成。
  • 包声明时名字可以和文件夹的命名不一样。
一文熟悉 Go 的基础语法和基本数据类型_后端_02
  • 同一个文件夹内,每个 Go 文件的包声明必须一致,否则会报错。
package hello // a.go 文件
package hello // b.go 文件
  • 包的引入方式:​​import [alias] xxx​​​,​​alice​​​ 是一个可选值,为包起别名。
import "fmt"

import f "fmt" // 起别名
  • 引入包而没有使用,会报错。
  • 匿名引入:
import _ "fmt" // 起别名

一般匿名引入,是为了使用包里面的 ​​init​​​ 函数,它先于 ​​main​​ 函数之前执行

func init() {

}

基本数据类型

Go 语言中的数据类型有很多,除了本文介绍的基本数据类型以外,还有指针、数组、结构体 ​​struct​​​、管道 ​​channel​​​、函数 ​​func​​​ 、切片 ​​slice​​​ 、接口 ​​interface​​、map 等。

一文熟悉 Go 的基础语法和基本数据类型_Go_03

整形数据类型

有符号整数类型

占用存储空间

一文熟悉 Go 的基础语法和基本数据类型_Go_04 ~一文熟悉 Go 的基础语法和基本数据类型_后端_05-1 (-128-127)

int16

一文熟悉 Go 的基础语法和基本数据类型_Go_06~一文熟悉 Go 的基础语法和基本数据类型_Go_07-1 (-32768-32767)

int32

~-1 (-2147483648-2147483647)

int64

~-1

无符号整数类型

占用存储空间

uint8

0~255

uint16

0~-1

uint32

0~-1

uint64

0~-1

其他整数类型

占用存储空间

32位系统-4字节, 64位系统-8字节

~-1

~-1

32位系统-4字节, 4位系统-8字节

0 ~-1

0~-1

等价 int32

~-1

等价 unint8

0~255

浮点数据类型

占用存储空间

float32

-3.403E38~3.403E38

float64

-1.798E308~1.798E308

  • Go 没有字符类型,如果要存单个字符(字母),可使用 ​​byte​​ 类型代替。
  • Go 中字符使用 ​​UTF-8​​ 编码。
  • 布尔类型在 Go 中对应 ​​bool​​​ 类型,它只允许取值为 ​​true​​​ 和 ​​false​​。
  • 布尔类型占 1 个字节。
  • 布尔类型适用于逻辑运算,一般用于程序流程控制。

字符串类型

  • 字符串不可变(指的是其中字符的值不能变,例如 ​​var name string = "cmy"​​​,然后操作 ​​name[0]='a'​​ 是不行的)。
  • 如果字符串中需要换行或者字符串较复杂,可以使用反引号 ``。

基本数据类型的默认值

false

字符串类型

常量和变量声明

  • 常量声明:​​const xxx type = value​
const realName string = "chenmingyong"
const Age int = 18
  • 变量声明:​​var xxx type = value​
var realName string = "chenmingyong"
var Age int = 18
  • 在定义局部变量(方法或函数内部的变量)时,还可以使用 ​​:=​​​ 去声明,切记是局部变量,全局变量不能使用 ​​:=​​,否则会报错。
realName := "chenmingyong"
Age := 18
  • Go 会使用类型推断来判断类型,数字会被理解为 ​​int​​​ 或者 ​​float64​​​,字符串会被理解为 ​​string​​。
  • Go 推荐使用驼峰命名的方式。
  • 常量被声明后,后续的值不能被修改。
  • 常量和变量的名字,首字母是否大写,决定着它是否能够被包外文件访问,大写则可以被包外的 Go 文件访问,小写则认为是私有的,只能被包内的 Go 文件访问。
  • 变量声明之后,没有使用,编译时会报错。
  • 类型不匹配不能被赋值。
  • 同一个作用域下,变量只能声明一次。

如果本文对你有帮助,欢迎点赞收藏加关注,如果本文有错误的地方,欢迎指出!


Recommend

  • 44

    当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型。 本篇聊Java数据类型主要包括两个内容: Java基本类型 Java封装类型

  • 19

    一、基本类型 1、基本类型 不使用New创建,声明一个非引用传递的变量,且变量的值直接置于堆栈中,大小不随运行环境变化,效率更高。使用new创建的引用对象存储在堆中。 2、基本...

  • 19

    统一类型 在数据类型方面Scala与Java的最大区别在于: Scala没有所谓的基本数据类型,秉承一切皆对象的...

  • 4

    redis 五大数据结构Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(...

  • 7

    【基础】Golang基本语法二(数组、方法和接口) 类型 [n]T 表示拥有 n 个 T 类型的值的数组。 var a [10]int将变量 a 声明为拥有 10 个整数的数组

  • 7

    大数据必学Java基础(十三):基本数据类型的转换 原创 Lansonli 2022-07-2...

  • 2

    第二章 基本数据类型⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基...

  • 2

    前言:本文用于PowerBuilder12.6程序员,PowerBuilder最初由Sybase发布,能很快捷开发C/S程序或者多层应用系统。SAP以58亿美元现金收购Sybase以抗衡甲骨文,PowerBuilder 12.6是SAP收购Sybase后与2014发布的版本。这是第二部分:数据类型。​

  • 0

    当学习 Python 编程语言时,掌握基本语法和数据类型是必不可少的。在这里,我们将讲解 Python 的变量和常量、...

  • 2

    1.初识字符串 字符串就是一系列字符。在python中,用引号括起来文本内容的都是字符串。 其语法格式为:‘文本内容’或者“文本内容” 我们发现其中的引号可以是单引号,也可以是双引号。这样的灵活性可以使我们进行引号之间的嵌套...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK