暑假青训营——GO语言入门——基础语法(上)| 青训营

110 阅读3分钟

暑假青训营——GO语言入门——基础语法(上)| 青训营

一、GO的特点

  • 高性能、高并发
  • 语法简单、学习曲线平缓
  • 丰富的标准库
  • 完善的工具链
  • 静态链接
  • 快速编译
  • 跨平台
  • 垃圾回收

二、使用go的公司

image.png 不少国内外公司都在使用go,许多云原生组件都是用go开发。

三、程序事例及语法知识

1.hello,world

import "fmt"
func main(){
	fmt.Println("hello,world!")
}
  • go文件后缀为.go image.png
  • package main表示此文件所处的包为mian
    1. import "fmt"表示引入fmt包,引入后可使用该包函数 如: fmt.Println

2.声明变量

变量名称由一个或多个字母、数字、下划线组成

(1)常见变量类型

  • 字符串
  • 整数
  • 浮点型
  • 布尔型

(2)var :var name string

可写变量类型,也可不写(go语言会自动推导)

var a = " ins " 

声明变量a,并为其赋值

var n,b = 1,3  

声明两个变量,并为其分别赋值

var n,b int = 1,3 

声明其为整形变量

var d float32  

声明为浮点型,但未赋值,go会默认赋值

(2):= :name :=(短变量声明)

ot :=int(n) 

声明ot,并将n值转化为int类型赋值给ot

o := a +"t" 

将两个字符串拼接,拼接可以使用“+” 但值得注意的是,不可以再次对名称相同的变量进行初始化声明,相同名称初始化声明只可以进行一次,但可以多次重新赋值

(2)const:const name [type] =value用于声明常量

常量是不可修改的量,变量为可修改量

const b = 123

直接赋值,未定义类型

const b int = 123

定义类型且赋值

3.数据类型

  • 布尔型
  • 数值型
  • 浮点型
  • 字符串
  • 指针类型
  • 数组类型
  • 结构化类型
  • Channel类型
  • 函数类型
  • 切片类型
  • 接口类型
  • map类型

4.输入与输出

输出

a := 100
b := false
c :="ins"
d :="3.1415926"
fmt.Printf("%v,%T,%t,%s,%f,%d,%b
\n",a,a,b,c,d,a,a)
fmt.Println("++++++++")

运行结果:

100,int,false,ins,3.141593,100,1100100
++++++++
  • func.Printf //格式化打印
  • func.Println //换行打印

格式化打印占位符:

  • %v:原样输出
  • %T:打印类型
  • %t:bool类型
  • %s:字符串
  • %f:浮点
  • %d:10进制的整数
  • %b:2进制的整数
  • %o:8进制
  • %c:打印字符
  • %p:打印地址

16进制

  • %x:0-9,a-f
  • %X:0-9,A-F

输入

fmt包读取键盘输入

常用方法:

  • func Scan

​ Scan 从标准输入扫描文本,根据 空白符 分隔的值分别保存到本函数的参数中。

  • func Scanf

    Scanf从标准输入扫描文本,按照参数指定的格式去读取由空白符分隔的值保存到传递给本函数的参数中。

  • func Scanln

    Scanln类似Scan,它在遇到换行时停止扫描。必须到换行结束或读取完成

func main() {
	var x int
	var y string 
        fmt.Scanln(&x,&y)
	fmt.Printf("x的数值:%d,y的数值:%s\n",x,y)
	fmt.Scanf("%d,%s",&x,&y)
	fmt.Printf("x:%d,y:%s\n",x,y)
}

结果:

1 ind
x的数值:1,y的数值:ind

x:1,y:ind