Golang - 1 Golang入门

1 Golang入门

1 Golang介绍

1.1 简介

Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言
Go是【静态 强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)
解析型语言——源代由解析器对代码进行解释执行
编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行

python :动态强类型-【类型:不同类型之间能否直接运算】

go:静态强类型 -【静态:类型固定】

  • 解释型:源代码有解析器对代码进行解释后执行

    python、nodejs、php

  • 编译型:源代码编译成机器语言,然后由机器直接执行机器码即可

    c、java、c++、go

1.2 特性

① 跨平台的编译型语言

② 语法接近c语言

③ 管道chnnel 、切片slice、并发routine

④ 有垃圾回收机制

⑤ 支持面向对象和面向过程编程

1.3 go语言发展

  • 2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”

    用自己写自己被称为语言的自举

  • 2018年8月24日 go1.11 —— modules和WebAssembly支持 go mod模式 包管理

1.4 go语言的应用

由于其高并发和高性能,多应用与服务开发、并发、分布式、微服务等方向,自动化运维,区块链等方面

  • k8s:go写的

  • docker:go写的

  • 服务端开发

  • 分布式系统,微服务

  • 网络编程

  • 区块链开发

  • 内存KV数据库,例如boltDB、levelDB

  • 云平台

2 go

go代码是使用包来组织的,类似于其他编程语言中的库、模块、命名空间

2.1 包

一个包有一个或者多个.go文件组成,放在一个文件夹内。

比如:字符串相关的代码都放在string包中,每个.go文件的开始必须使用package声明,比如字符串包声明为 package string

2.2 main包

main包:用来定义具体的执行程序 (比如说我们的业务程序)

main包有特殊含义,一个项目必须要有main包,运行入口是main包下的main函数

func main是函数名,没有参数,没有返回值,是整个项目的入口

package main // 注释:声明go文件属于哪个包
import "fmt"  // 导入fmt包,自动导入的

func main() {
	fmt.Println("hello world")
}

main 函数

  • 如果当前包是main包,那么main函数就是执行程序的入口
  • 如果当前包不是main包,那么main函数就是一个普通函数

2.3 go程序的运行方式

  1. 编译并运行(一步完成)
  • 命令行运行 go run 文件名.go, 比如 go run main.go,
  1. 先编译为可执行文件,然后运行 (两步完成)
  • 命令行运行 go build 文件名.go, 比如 go build main.go
  • 生成可执行文件,比如 main
  • 执行可执行文件,./main

2.4 声明包与包导入

包导入,不使用会报错,编译不过

package main // 声明这个go文件属于哪个包,main有特殊含义,一个项目要运行必须要有main包,运行的入口是main包下的main函数

// 表示导入fmt包,自动导入的,goland自动导入的,使用了哪个包,编辑器会自动导入
// 包导入,不使用,会报错,编译不过
import "fmt"

a...表示 传入的hello world实参给了形参a

image-20230424155139984

posted @ 2023-04-24 16:38  Duosg  阅读(34)  评论(0编辑  收藏  举报