- 博客(18)
- 收藏
- 关注
原创 Go语言中的指针
本篇文章是通过学习[https://www.liwenzhou.com]所写,用于个人学习,资料整理,如有侵权请联系删除。 指针 任何程序数据载入内存后,在内部都有他们的地址,这就是指针。为了保存一个数据在内存中的地址,我们就需要指针变量。需要注意的是,变量值所在内存地址的值不等于该内存地址存储的变量值。 Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,我们只需要记住两个符号:&取地址、*根据地址取值 指针地址和指针类型 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中
2021-05-14 10:18:31
353
原创 Go语言之sort
sort 在之前的map中介绍过如何顺序遍历map,其中用到了sort包, sort包提供了排序切片和用户自定义数据集的函数。 在这里介绍一下sort包中常用的方法。 //Sort排序data。它调用1次data.Len确定长度,调用O(n*log(n))次data.Less和data.Swap。本函数不能保证排序的稳定性(即不保证相等元素的相对次序不变)。 func Sort(data Interface) //Stable排序data,并保证排序的稳定性,相等元素的相对次序不变。 //它调用1次dat
2021-05-14 08:31:25
468
原创 一文掌握Go语言的map(底层原理+使用方法)
map map是一种无序的基于key-value的数据结构 哈希表 提到key-value就会想到哈希表,哈希表通常会有一堆桶来存储键值对,一个键值对来了,会选择一个桶。 有两种方法比较常用: 1.取模法 hash%m 用hash值与桶的个数m取模 2.与运算 hash&(m-1) 哈希值与m-1进行与运算,若想运算结果在区间内,并且不会出现空桶则m必须是2的整数次幂 如果之后还有键值对选择这个桶,就是发生了哈希冲突,解决冲突的办法,常用的有两种: 1.开放地址法,找到被占用的桶后面没被占用的桶来
2021-05-11 17:31:52
1055
原创 Go语言中的数组
Array 数组是最常用的数据结构之一, 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 数组声明 var 数组变量名 [元素数量]T 数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。 [5]int和[10]int是不同的类型。 数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1,访问越界(下标在合法范围之外),则触发访问越界,会panic。 数组初始化 初始化数组时可以使用初始化列表来设置数组元素的值。 var testAr
2021-05-10 15:33:24
381
1
原创 Go语言中的类型转换以及strconv包的常用方法
类型转换 Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。 强制类型转换的基本语法如下: T(表达式) 其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等. strconv包 strconv包实现了基本数据类型和其字符串表示的相互转换。 Parse系列 Parse类函数用于转换字符串为给定类型的值 //返回字符串表示的bool值。它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE;否则返回错误。 fun
2021-05-10 15:09:20
255
原创 Go语言的string(底层结构+常用方法)
字符串 Go语言中的字符串是通过UTF-8编码,字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符 。 字符串底层结构是一个起始地址和长度(字节个数) 字符串转义符 Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等 转义符 含义 /r 回车符 /n 换行符 /t 制表符 /’ 单引号 /" 双引号 // 反斜杠 例如: //打印一个Windows平台下的一个文件路径 package main import ( "
2021-05-08 10:08:43
3296
原创 Go语言数据类型
Go语言有以下几种基本类型: 整型,浮点型,布尔型,复数类型,字符串,byte&rune。 还支持以下复合类型: 错误类型,数组,切片,指针,字典,通道,结构体,接口。 整型 整型分为两类:有符号和无符号 类型 说明 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 1844674407370955161
2021-05-08 10:05:24
274
2
原创 go语言中的类型别名和自定义类型
go语言中可以使用type关键字来定义类型,type有关类型方面有两种发放,一种是类型别名,一种是自定义类型。 type myInt int //自定义类型 type thisInt = int //类型别名 自定义类型myInt是一种新的类型,具有int的特性 类型别名是Go1.9版本添加的功能,本质上thisInt与int是同一个类型。相当于外号。 例如byte与rune type byte = uint8 type rune = int32 区别 package main type myIn
2021-04-26 09:47:58
387
原创 go语言中的常量与变量
变量 变量(varible)是所有编程语言中必不可少的组成元素,在我们需要去操作内存上的数据时,如果直接使用内存地址去操作会非常麻烦,所以便有了变量,变量其实是对一块数据存储空间的命名,通过引用变量名来使用这块存储空间。 变量声明 以var关键字开头,并且类型信息放在变量名之后,不需要分号结尾。可以单行声明,也可以多行声明。 var num int var ( name string //字符串 isOk bool //布尔型 nums [10]int //数组
2021-04-26 09:04:44
320
原创 go语言命令行操作
打开命令行输入go后我们可以看到: 下面我们来一一解释每个命令的用法: go bug start a bug report 该命令并不是debug,而是在命令行输入后进入到go的github主页,提交一份你发现的bug。 go build compile packages and dependencies编译包和依赖项。 go build 命令会编译当前目录下所有go文件。 如果只编译main包,go build之后会在当前目录下生成一个可执行文件,如果想要在指定路径下生成可执行文件则使用go build
2021-04-25 21:41:55
1584
原创 一次看懂go语言中的slice(底层原理和常用操作)
写在前面 本篇文章是通过学习https://www.liwenzhou.com/posts/Go/06_slice/#autoid-2-1-5和观看幼麟实验室的视频所写,用于个人学习,如有侵权请联系删除。 正文: 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性 。 例如: a := [3]int{1, 2, 3} 数组a中已经有三个元素了,我们不能再继续往数组a中添加新元素了。 所以便有了切片(slice) slice 切片(Slice)是一个拥有相同类型元素的可变长度的序列。
2021-04-25 14:30:39
707
1
原创 go语言make()和new()的区别
new() func new(Type) *Type 内建函数new分配内存。其第一个实参为类型,而非值。其返回值为指向该类型的新分配的零值的指针。 make() func make(Type, size IntegerType) Type 内建函数make分配并初始化一个类型为切片、映射、或通道的对象。其第一个实参为类型,而非值。make的返回类型与其参数相同,而非指向它的指针。其具体结果取决于具体的类型: slice:size指定了其长度。该切片的容量等于其长度。切片支持第二个整数实参可用来指定不同
2021-04-23 15:19:21
139
原创 go语言中的iota详解
iota是go语言的常量计数器,只能在常量的表达式中使用。 使用iota时只需要记住以下两点 1.iota在const关键字出现时将被重置为0。 2.const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。 例子: const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 ) const ( n1 = iota //0
2021-04-23 11:34:47
9911
1
原创 如何打开mysql数据库
前提是你已经下载配置好自己的数据库 需要的小伙伴留言邮箱给我 第一种方法 右击电脑开始选择计算机管理 服务和应用程序——服务——找到自己电脑中的数据库启动 第二种方法 找到cmd右键以管理员身份运行 输入net start mysql1221(自己数据库的名字)回车 停止 输入net stop mysql1221(自己数据库的名字)回车 ...
2020-09-21 21:48:29
16600
2
原创 java连接mysql数据库——详细步骤(一看就会)
需要工具 ecilpse MySQL MySQL数据库连接驱动:mysql-connector-java-5.1.16-bin.jar 第一步 新建一个类 第二步 把驱动复制到包中 第三步 添加路径 打开MySQL数据库: 计算机管理——服务和应用程序——服务——找到mysql运行 运行代码即可连接到数据库 package com.csdn.badam; import java.sql.*; public class DBHelper { //连接数据库的常量参数 //连接数据库的用户名
2020-09-21 21:36:15
1040
原创 sql语言之排序查询
#进阶3:排序查询 /* 引入: select * from employees; 语法: select 查询列表 from 表 【where 筛选条件】 order by 排序列表 【asc | desc】 特点: 1、asc 升序,desc 降序,不写默认升序 2、order by子句可以支持单个字段、多个字段、表达式、函数、别名 3、order by子句一般放在查询语句的最后,limit子句...
2020-04-18 09:48:15
852
1
原创 sql语言之条件查询
#进阶二:条件查询 /* 语法: select 查询列表 from 表名 where 筛选条件; 分类: 1.按条件表达式筛选 条件运算符: > < = != <> >= <= 2.按逻辑表达式筛选 逻辑运算符: && || ! and or not 3.模糊查询 like between and in is null */ #1.按条件...
2020-04-18 08:48:24
407
1
原创 sql语言之基础查询
#进阶1:基础查询 /* 语法: select 查询列表 from 表名; 类似于:system.out.println() 特点: 1、查询列表可以是:表中的字段、常量值、表达式、函数 2、查询的结果是一个虚拟的表格 */ USE myemployees; #1.查询表中的单个字段 SELECT last_name FROM employees; #2.查询表中的多个字段 SELECT last...
2020-04-18 08:45:18
279
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅