Golang基础入门

util 用于定义常用函数 让其他文件来调用

db 定义对数据库操作的函数

打包基本语法:package 包名

引入包基本语法,import "包路径"

使用包函数

包名.函数名()

接口的基本语法 type 接口名称 interface{
//方法
method(参数列表)返回值列表
}
接口里面的方法没有全实现,会报错

指针

值类型包括:基本数据类型int系列,float系列,bool,string、数组和结构体(struct)
引用类型:指针、slice切片、map、管道chan、interface等
基本数据类型,变量存的就是值,也叫值类型
基本数据类型在内存中的布局
地址是&i,
指针类型,指针变量存的是一个地址 ,这个地址指向的空间存的才是值
指针在内存的布局

var ptr *int = &i

ptr 是一个指针变量

ptr 的类型*int

ptr 本身的值&i

类型

值类型包括:基本数据类型int系列,float系列,bool,string、数组和结构体(struct)

值类型:变量直接存储值,内存通常在栈中分配

引用类型包括:指针、slice切片、map、管道chan、interface等

引用类型:变量储存的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆区分配

获取用户终端输入

Scanln fmt.Println("请输入年龄") fmt.Scanln(&age)

scanf fmt.Scanf("%s %t", &name,&isto) fmt.Printf("%v,%v", name, isto)

位运算

程序流程控制

顺序控制 程序从上到下地执行,中间没有任何判断和跳转

分支控制

单分支控制

  • 基本语法 if 条件表达式 { 执行代码 } 需求—>分析—> 代码



双分支

多分支

switch 分支 (默认有break)

在golang中case后面可跟多个表达式,用逗号隔开

switch 细节讨论:

1)case后是一个表达式(常量值、变量、一个有返回值的函数都可以)

2)case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致

3)case后面可以带多个表达式,使用逗号间隔

4)case后面的表达式如果是 常量值,则要求不能重复

5)case后面不需要带break

6)default 语句不是必须的

7)switch后也可以不带条件表达式,类似if else 使用

8)switch 后也可以直接声明/定义一个变量,分号结束

9)switch 穿透 fallthrough,如果在case语句块后增加fall through,则会继续执行下一个case,也叫switch穿透 默认只会穿透一层

10)Type Switch:switch 语句还可以被用于type-switch来判断某个interface变量中实际指向的变量类型 (判断空接口的数据类型)

循环控制

for循环的细节讨论

1)循环条件是返回一个布尔值的表达式

2)第二种写法

3)第三种写法 字符串遍历

  • 字符串遍历方式1-传统方式

var str string = "hello,world河北"

for i := 0; i < len(str); i++ {

fmt.Printf("%c\n", str[i]) //使用到下标

}

细节:如果我们字符串含有中文,那么传统的遍历字符串方式,就是错误,会出现乱码。原因是传统的方式对字符串的遍历是按照字节来遍历,而一个汉字在utf8编码是对应3个字节

  • 字符串遍历的方式2-for-range

    var str1 = "abc=ok保定1"

    for i, l := range str1 {

​ fmt.Printf("index=%d,value=%c", i, l)

}

4)嵌套循环

posted @ 2022-11-06 10:28  lzhhzlzlh  阅读(51)  评论(0编辑  收藏  举报