go(一)

go(一)

前四篇go基础笔记大部分cv–只因–的,主要本人是懒得写了,后面会继续更新go的基础及其框架,预计今年年底更完吧(感谢狂神_

一、Go语言的发展史

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Go语言特性

go语言也称为goland,是由Goggle公司开发的一种静态强类型,编译型,并发性,Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算

二、Go语言环境安装

下载地址

国外网站太慢,我们使用中文网进行下载!
Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com)

在这里插入图片描述

安装

无脑下一步就完了 ,注意下这里创建自己设置一个Go语言的环境目录!

在这里插入图片描述

查看版本

打开cmd 输入go version检测是否安装成功

在这里插入图片描述

配置环境变量

需要配置一个GOROOT和一个工作目录GOPATH(在里面建三个包bin,src,pkg)

GOROOT

在这里插入图片描述

GOPATH

在这里插入图片描述

这里需要在Goworks目录下存放三个包
文件源码都会在这三个文件下生成

在这里插入图片描述

确定一下path里是否有环境地址,如果没有的话在cmd输入go 以及go version就会找不到指令

在这里插入图片描述

输入go env检测环境是否设置成功

在这里插入图片描述

备:如果GOROOT路径没有设置成功,则将环境变量复制一份到用户变量里面就行

三、GOLand安装

接下来该干什么呢,当然是下载编码工具啊,不然用记事本敲吗?!

下载地址

Thank you for downloading GoLand! (jetbrains.com)

下载后双击打开,设置安装环境地址

在这里插入图片描述

勾选

在这里插入图片描述

在这里插入图片描述

然后就ok了

四、HelloWorld

使用记事本编写hello.go

package main

import "fmt"  // 导入一个系统包fmt用来输出的

func main(){
fmt.Println("Hello,归空") // 打印输出helloworld字符串!
} 

注意:文件路径要对

在这里插入图片描述

解释:在Go语言里,命名为main的包具有特殊的含义。Go语言的编译程序会试图把这种名字的包编译为二进制可执行文件。所有用Go语言编译的可执行程序都必须有一个名叫main的包,一个可执行程序 有且仅有一个 main包

当编译器发现某个包的名字为main时,它一定也会发现名为main()的函数,否则不会创建可执行文件。main()函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行。程序编译时,会使用声明main包的代码所在的目录的目录名作为二进制可执行文件的文件名。

五、注释

给阅读代码的人看的,机器不会执行这行语句

单行注释

// 我是单行注释

多行注释

/*
我是多行注释
我是多行注释
我是多行注释
我是多行注释
*/

// 这是一个main函数,这个是go语言启动的入口
func main() {
   //fmt.Println :打印一句话,然后执行完毕后,进行换行
   fmt.Println("Hello,World")
}

六、什么是变量

所谓变量就是会变化的量,假如我添加一个变量叫做名字,那这个名字可以是任何人的名字。例:张三,李四

var name String = "只因"

我们定义的 name 变量 会指向内存中的某个地址,这个这个地址上的值就是变量的值,也就是

例:name指向0x18这个地址,根据这个地址找到一个名字叫归空

七、变量的定义

Go语言是静态类型语言,就是所有的类型我们都需要明确的去定义
我们声明一个变量一般是使用var关键字

var name type

以上为变量定义的固定写法

  • var:声明变量的关键字
  • name:变量名,怎么起名字看你自己
  • type:代表变量的类型
//定义一个字符串变量 name
var name String
//定义一个数字类型变量 int
var age int

批量定义变量

var(
addr String
phone String
)

如果没有显式的给变量赋值,系统自动赋予它该类型的默认值

  • 整形和浮点型变量的默认值为0和0.0
  • 字符串变量的默认值为空字符串(啥都没有)
  • 布尔型变量默认为false
  • 切片、函数、指针变量的默认为nil

八、变量的初始化

var (
		name string = "归空"
		age  int    = 17
		addr string = "中国"
	)
	fmt.Println(name, age, addr)

短变量声明并初始化

  	name2 := "归空"
	age2 := 22
	addr2 := "中国"

	fmt.Printf("name:%s,age:%d,addr:%s", name2, age2, addr2)
	fmt.Printf("%T,%T,%T", name2, age2, addr2)

这是Go语言的推导声明写法,编译器会自动根据右值的类型推断出左值的类型

因为简洁和灵活的特点,简短变量声明被广泛用于大部分的局部变量的声明和初始化

注意
由于使用了 := ,而不是赋值的 = ,因此推导声明写法的左值必须是没有被定义过的,若定义过,将会发生编译错误

九、打印内存地址

var age int
	age = 100
	fmt.Printf("age:%d,内存地址:%p", age, &age)

	age = 200
	fmt.Printf("age:%d,内存地址:%p", age, &age)

我们修改 age的值 但是内存地址不会发生改变,因为只是修改了这个内存地址指向的值

十、变量交换

在这之前我们学习别的语言(例如java)交换两个变量的值,会比较麻烦
比如有 a=100 b=200
再添加一个中间变量temp

1、 temp = a
2、 a = b
3、 b = temp
//例如:java(什么public啥的就没敲了)
int a = 100;
int b = 200;
int temp;
temp = a;
a = b;
b = temp;
System.out.pringtln(a,b);

Go语言中只需要一行(比java爽多了哈哈哈哈哈哈)

var a int = 100
var b int = 200

b,a = a,b
fmt.Println(a, b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值