Go语言学习笔记(基础篇)

目录

环境安装

 Windows环境变量配置

Linux环境变量配置

验证环境

一、Hello,World!

二、基础数据类型

1、数字类型

整型

浮点型

2、布尔类型

3、字符串类型

三、变量

1、变量初始值

2、变量声明

3、变量作用域

4、注意事项

四、常量

1、定义常量

2、iota常量

 五、运算符

1、算数运算符

2、关系运算符

3、逻辑运算符

4、位运算符

5、赋值运算符


环境安装

官方环境下载地址:All releases - The Go Programming Language

 选择合适自己的版本下载即可

 Windows环境变量配置

1、找到安装路径下的bin文件,复制该文件路径

2、打开系统高级设置(sysdm.cpl)

 

 3、找到系统变量的Path,然后输入分号分隔前面的语句,将复制的路径添加在后面即可

Linux环境变量配置

1、直接使用yum安装的小伙伴就不用配置变量了,会自动创建链接到/usr/bin下,可以直接使用go环境

2、使用安装包安装的就需要查找go的安装位置,然后声明bin文件的路径到变量中

添加路径的时候需要用冒号分隔

验证环境

go version

 

出现版本号就代表环境安装成功!

一、Hello,World!

新建文件hello.go,输入以下内容:

package main    //包的名字,每个程序都要有一个main包

import "fmt"    //导入fmt包,格式化输入输出

//main()是程序除init()外最开始执行的函数
func main() {
    /*
    Println:输出结尾换行
    Print:输出,结尾不换行
    Printf:格式化输出
    */
    fmt.Println("Hello" + ",World!")
    fmt.Print("Hello,World!")
    fmt.Printf("%s", "Hello,World!")
}

使用以下命令运行go:

go run hello.go

或者

go build hello.go        //先构建成二进制文件,然后在运行

(Windows)hello.exe

(Linux)./hello

输出结果(Println:红色,Print:绿色,Printf:蓝色):

Hello,World!

Hello,World!Hello,World!

二、基础数据类型

1、数字类型

整型

类型

范围

uint8

无符号 8 位整型 (0 到 255)
uint16无符号 16 位整型 (0 到 65535)
uint32无符号 32 位整型 (0 到 4294967295)
uint64无符号 64 位整型 (0 到 18446744073709551615)

int8

有符号 8 位整型 (-128 到 127)
int16有符号 16 位整型 (-32768 到 32767)
int32有符号 32 位整型 (-2147483648 到 2147483647)
int64(default)有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)

浮点型

类型

范围
float32IEEE-754 32位浮点型数
float64(default)IEEE-754 64位浮点型数
complex6432 位实数和虚数
complex12864 位实数和虚数

2、布尔类型

 只有以下两种:

true

false

3、字符串类型

Golang使用Utf-8编码,单引号为字符(字符打印后会转化为编码值,属于整型),双引号为字符串

package main

import "fmt"

func main() {
    //:=快速赋值语句,但是需要新的变量才可以使用,编译器可自行识别类型
    s1 := 'a'    //等同于var s1 int = 'a'
    s2 := "a"    //等同于var s2 string = "a"
    fmt.Println(s1, s2)
}

输出结果(s1:红色,s2:绿色):

97 a

三、变量

1、变量初始值

整型初始值:0

布尔型初始值:false

字符串初始值:""(空)

以下几种初始值为nil:

var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口

2、变量声明

package main

import "fmt"

func main() {
    var name string = "xiaoming"    //声明直接赋值
    var age int //先声明
    age = 18    //再赋值
    height := 180    //快速赋值,编译器自行判断类型,但是该变量只能是未声明过的
    /*以下情况会报错
    var height int
    height := 180
    */
    /*也可以批量声明变量
    var age, height int
    var age, height int = 18, 180
    age, height := 18, 180
    */
    
    fmt.Printf("%s今年%d岁,身高%dcm。", name, age, height)    //%s代表字符串,%d代表整型(字符也要用整型)
}

输出结果:

xiaoming今年18岁,身高180cm。

3、变量作用域

package main

import "fmt"

var name string = "xiaohong"    //函数外声明的变量为全局变量

func main() {
    fmt.Println(name)    //使用全局变量
    name = "xiaoli"    //修改全局变量
    fmt.Println(name)
    var name string = "xiaoming"    //函数内声明的变量为局部变量
    fmt.Println(name)    //函数调用就近原则,函数内有则优先调用,在之后才是函数外的全局变量
}

输出结果:

xiaohong

xiaoli

xiaoming

4、注意事项

1)变量被定义了,就一定要使用,不然报错。

2)可以使用_来丢弃不需要的变量,如下代码,只有200和300被变量b和a保存了,100和400被丢弃了。

_, b = 100, 200
a, _ = 300, 400

四、常量

1、定义常量

package main

import "fmt"

func main() {
    //常量不可修改
	const age, height int = 18, 180    //声明常量
	const pi = 3.14    //常量的类型可以省略
	//也可以用这种形式批量创建常量
	const (
    name = "xiaohong"
    number = len(name)    //在常量中可以使用内置函数:len() unsafe.Sizeof() cap()
	)
	fmt.Println(age, height, pi, name, number)
}

输出结果:

18 180 3.14 xiaohong 8

2、iota常量

package main

import "fmt"

const (
	a = iota	//iota从0开始计数,a=0 iota=0
	b	//b=1 iota=1
	c	//c=2 iota=2
	d = "xiaoming"	//iota=3
	e = 18	//iota=4
	f	//同上f=18 iota=5
	g = iota	//g=6 iota=6
	h	//h=7 iota=7
)
//新的常量组不会继承iota计数
const (
	i = iota	//i=0 iota=0
	j	//j=1 iota=1
	k	//k=2 iota=2
)

func main() {
    fmt.Println(a, b, c, d, e, f, g, h, i, j, k)
}

输出结果(iota:蓝色,字符串:绿色,整型:橙色):

0 1 2 xiaoming 18 18 6 7 0 1 2

 五、运算符

1、算数运算符

假设变量a=10,b=3,算数运算符示例如下,其中a/b的结果为整数,如果a和b都是浮点数,结果则为浮点数。

运算符两边的类型需要一致。

运算符作用示例
+a+b结果13
-a-b结果7
*a*b结果30
/a/b结果3
%求余数a%b结果1
++自增1a++结果11
--自减1b--结果2

2、关系运算符

假设变量a=10,b=3

运算符作用示例
==等于a==b结果false
!=不等于a!=b结果true
<小于a<b结果false
>大于a>b结果true
<=小于等于a<=b结果false
>=大于等于a>=b结果true

3、逻辑运算符

假设变量a=true,b=false

运算符作用示例
&&逻辑anda&&b结果false
||逻辑ora||b结果true
!逻辑not!(a&&b)结果true

4、位运算符

假设变量a=0100,b=0110

运算符作用示例
&与运算a&b结果
|或运算a|b结果
^异或运算a^b结果
<<左移a<<2结果
>>右移b>>2结果

5、赋值运算符

学习中。。。


学习资料:

Go 语言教程 | 菜鸟教程

B站-狂神说

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值