Go语言开篇

概述

一种静态强类型、编译型语言! (而Java是解释型语言)
在这里插入图片描述

前景介绍

几百万做 Java 的是不是傻子不太确定。

Rob Pike 那帮人绝不是傻子而且聪明绝顶,这很确定!

安装

官网下载,傻瓜式安装,环境变量会自动配置好,cmd输入cmd输入go version检查是否成功!
工作空间默认C:\用户名\go下,可以去环境变量中修改!
该目录下:
在这里插入图片描述

执行第一个Go

package main //程序入口包(可以打包的 类似SpringBoot)

// 导入外包
import "fmt"

//程序入口
func main(){
	fmt.Println("hello world!")
}

go build 编译:
在这里插入图片描述

其他命令:

go run main.go //直接运行.go文件
go build -o hello //将编译的可执行文件命名为hello.exe
go install :
           1. 先编译得到一个可执行文件
           2. 将可执行文件copy到GOPATH/bin下(类似于moven项目install)

交叉编译

.exe文件可不能在Linux系统上运行,所以:
在这里插入图片描述

标识符

字母数字下划线
在这里插入图片描述

包管理

在这里插入图片描述

指针

&v 表示v变量的指针,即地址
*p 表示p指针所指向的值

*t 表示指向t类型数据的指针 (即 指针的类型)

func main() {
	v := 10 //变量v
	p := &v //获取指向变量v的指针(即变量v的地址) 指针也是一种变量
	a := *p //获取指针p所指向的数据赋予变量a
	fmt.Printf("type=%T value=%v \n",v,v) // type=int value=10
	fmt.Printf("type=%T value=%v \n",p,p) // type=*int value=0xc0000ac058
	fmt.Println(a == v) // true
}

new 初始化指针

内置函数 new(Type) 返回 *Type 类型的指针

func main() {
	var p *int //同样的 这样只是声明,并不会初始化
	fmt.Printf("type=%T value=%v \n",p,p) // type=*int value=<nil>
	pp := new(int) // 只有等号的声明才会去初始化 从内存中拿个地址
	fmt.Printf("type=%T value=%v \n",pp,pp) // type=*int value=0xc00000a0d0
}

make 初始化复合数据类型

make(t Type, size ...IntegerType) 返回一个初始化后的复合数据类型

在这里插入图片描述

杂记

  1. 方法名首字母小写,则此方法只能在同包下调用;大写则在其他包中可以调用。
  2. 程序从 main 包开始运行,其中的main()函数是程序的入口
  3. Go的局部变量也会给默认值
  4. Go中的null为nil
    在这里插入图片描述
  5. var 声明变量基本数据类型会赋默认值,复合数据类型为nil(复合数据类型可以使用make函数初始化个非nil变量)
  6. append():可以直接初始化一个切片(能够分配内存)
  7. 内置排序只能排序切片,不能排序数组:
	a := [...]int{1,5,6,2,3}
	sort.Ints(a[:])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值