GO

Go

    • 一、简介
    • 二、安装及设置
        • 安装地址
        • 安装步骤
        • 学习资料
    • 三、第一个Go程序
    • 四、变量
        • 变量声明
            • 单个声明
            • 批量声明
            • 分组声明
            • 自动推导
            • 匿名变量(特殊的变量名 '_')
    • 五、常量
            • 关键词
            • 特点
            • 常量定义
            • iota 枚举
    • 六、基础数据类型
            • 布尔
            • 整型
            • 浮点型
            • 字符串
            • 字符
            • 复数类型
    • 七、 输入输出
            • 格式化
            • Printf和Println的区别
            • 输入
    • 八、运算符
        • 算数运算符
        • 关系运算符
        • 逻辑运算符
        • 位运算符
        • 赋值运算符
        • 其他运算符
        • 运算符优先级
    • 九、流程控制
        • 循环语句
        • 跳转语句
    • 十、函数
        • 定义格式
        • 自定义函数
        • 递归函数
        • defer作用
        • 作用域
    • 十一、复合类型
        • 指针
        • 数组
        • 切片
        • map
        • 结构体
    • 十二、Json
    • 十三、面向对象
    • 十四、并发编程

一、简介

产自:谷歌
类型:编译型
代表动物:地鼠
底层语言: C语言
简单概括:Go(又称Golang)是Google开发的一种静态强类型、编译型、并发 型,并具有垃圾回收功能的编程语言
注意事项:1.每行程序结束后不需要撰写分号(;)。
     2.大括号({)不能够换行放置。
     3.if判断式和for循环不需要以小括号包覆起来。

Go语言25个关键字: break   default   func   interface   select
                 case     defer     go      map        struct
                 chan     else      goto       package     switch
                 const   fallthrough   if   range   type
                 continue   for      import   return   var
    GO_第1张图片

二、安装及设置

安装地址

链接: https://golang.google.cn/dl.
GO_第2张图片

安装步骤

傻瓜安装法(装完测试环境是否能用不能则配置环境变量,默认自动配置环境变量)

学习资料

Go语言官网(需要):https://golang.org/.
go中文社区:https://studygolang.com.
go中文在线文档: https://studygolang.com/pkgdoc.

三、第一个Go程序

package main

import "fmt"

func main()  {
	fmt.Println("Hello word")
}

在这里插入图片描述

四、变量

变量声明

单个声明
var s1 string
var s2 int
var s3 float32

s1 = "fsp"
s2 =  123
s3 =  3.14
批量声明
var s2,s3,s4,s5 string
var w2,w3,w4,w5 int
var q2,q3,q4,q5 float32

s2,s3,s4,s5 = "sfs","ggds","ads","dsfgs"
w2,w3,w4,w5 =  1,2,3,4
q2,q3,q4,q5 =  1.1,1.2,1.3,1.4

分组声明
var (
Name  string
Age   int
Sex   string
hobby string
)

Name = "Hello word"
Age  =  19
Sex  = "男"
hobby = "篮球"
自动推导
m := "abcdefg"
w :=  bool
s :=  123
匿名变量(特殊的变量名 ‘_’)
_,q,_e,_,w := 1,2,3,4,5

五、常量

关键词

const

特点

长来那个一旦定义就不能改变

常量定义
    const Pi float64 = 3.14
    const zero = 0.0 // 浮点常量, 自动推导类型

    const ( // 常量组
        size int64 = 1024
        eof        = -1 // 整型常量, 自动推导类型
    )
    const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值
    const a, b, c = 3, 4, "foo"
    // a = 3, b = 4, c = "foo"    //err, 常量不能修改
iota 枚举

特点:在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加1

  const (
        x = iota // x == 0
        y = iota // y == 1
        z = iota // z == 2
        w  // 这里隐式地说w = iota,因此w == 3。其实上面y和z可同样不用"= iota"
    )

    const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0

    const (
          k = iota
         h, i, j = iota, iota, iota //h=0,i=0,j=0 iota在同一行值相同
           n = iota
    )

    const (
        a       = iota //a=0
        b       = "B"
        c       = iota             //c=2
        d, e, f = iota, iota, iota //d=3,e=3,f=3
        g       = iota             //g = 4
    )
    
    const (
        x1 = iota * 10 // x1 == 0
        y1 = iota * 10 // y1 == 10
        z1 = iota * 10 // z1 == 20
    )

六、基础数据类型

布尔
var v1 bool
v1 = true
v2 := (1 == 2) // v2也会被推导为bool类型
整型
 var v1 int32
    v1 = 123
    v2 := 64 // v1将会被自动推导为int类型
浮点型
 var f1 float32
    f1 = 12
    f2 := 14.0 // 如果不加小数点, fvalue2会被推导为整型而不是浮点型,float64
字符串
字符
复数类型

七、 输入输出

格式化

GO_第3张图片

Printf和Println的区别

Printf 是格式化输出 格式是自己定义的 可改变的 不会自动换行
Println 是普通的输出 会自动换行

输入

fmt.Scanf()

var v int
    fmt.Println("请输入一个整型:")
    fmt.Scanf("%d", &v)
    //fmt.Scan(&v)
    fmt.Println("v = ", v)

八、运算符

算数运算符

GO_第4张图片

关系运算符

GO_第5张图片

逻辑运算符

GO_第6张图片

位运算符

GO_第7张图片

赋值运算符

GO_第8张图片

其他运算符

GO_第9张图片

运算符优先级

GO_第10张图片

九、流程控制

####选择结构

if switch 太简单就不写了

循环语句

Go语言只有for循环可代码一切循环

跳转语句

break==>结束本次循环 跳出循环
continue==>跳过某一个循环 接着循环下边的
go to 跳转

十、函数

定义格式

func FuncName(/*参数列表*/) (o1 type1, o2 type2/*返回类型*/) {
    //函数体

    return v1, v2 //返回多个值
}

函数定义说明:
 func:函数由关键字 func 开始声明
 FuncName:函数名称,根据约定,函数名首字母小写即为private,大写即为public
 参数列表:函数可以有0个或多个参数,参数格式为:变量名 类型,如果有多个参数通过逗号分隔,不支持默认参数
 返回类型:
① 上面返回值声明了两个变量名o1和o2(命名返回参数),这个不是必须,可以只有类型没有变量名
② 如果只有一个返回值且不声明返回值变量,那么你可以省略,包括返回值的括号
③ 如果没有返回值,那么就直接省略最后的返回信息
④ 如果有返回值, 那么必须在函数的内部添加return语句

自定义函数

无参无返回值
有参无返回值
无参有返回值
有参有返回值

递归函数

直接或间接调用本身

package main

import "fmt"

func main()  {
	//计算1--100的和为
	fmt.Println(Test(100))
}
//递归函数
func Test(num int)int  {
	if num==1{
		return 1	//出口
	}else{
		return num+Test(num-1)  //调用自己 
	}
}

defer作用

先进后出

作用域

局部变量与全局变量的区别:全局都可以用,但是有就近原则

十一、复合类型

指针

数组

切片

map

结构体

十二、Json

十三、面向对象

十四、并发编程

你可能感兴趣的:(Go)