go

Go语言入门4(切片)

切片 ​ Go语言切片是一种建立在数组类型之上的抽象,它构建在数组之上并且提供更强大的能力和便捷。解决了数组长度不可变等缺陷 声明切片 ​ 切片的数据结构非常小,只有三个字段:指向底层数组的指针,切片长度,切片容量。切片长度是指切片的真实长度,切片容量是指切片可扩展的最大长度,一般来讲切片长度要小于 ......
语言

Go语言入门3(数组)

数组 ​ 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。 :star::在其他语言中数组大多是引用类型,但 ......
数组 语言

一道关于 len 函数的诡异 Go 面试题解析

package main func main() { var x *struct { s [][32]byte } println(len(x.s[99])) } 答题结果如下: 正确率只有 16%。 本文就讲解下为什么结果是 32。 01 解析题目 先剖析下这段代码,x 变量: var x *st ......
函数 一道 len Go

go run、build、install、get的原理和区别

学习go也有好些年头了,都没怎么研究过go的编译命令。真是惭愧。今天学习并记录下 结论: go run 专门用来运行命令源码文件的命令,一般用来运行单个文件 go build 主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件 go install 编译并安装代码包或者源码文件的。 ......
原理 install build get run

05-Go方法、接口、泛型

1 方法 //方法 1.是特殊的函数,可以自动传值 > 对象(go中就是结构体)来调用,自动把对象(当前结构体的实例)传过来 2.在func关键字 和 方法名 中间加入了一个特殊的接收器类型 接收器可以是结构体类型或者是非结构体类型 接收器是可以在方法的内部访问的 3.方法是绑定给结构体的 > 如何 ......
接口 方法 05 Go

「刷起来」Go必看的进阶面试题详解

勤学如春起之苗,不见其增日有所长;辍学如磨刀之石,不见其损日有所亏。 本文的重点:逃逸分析、延迟语句、散列表、通道、接口。 1.逃逸分析 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。 问题描述: 有如下 ......

【装饰器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 装饰器模式(Decorator Pattern)是一种结构型设计模式。将对象放入到一个特殊封装的对象中,为这个对象绑定新的行为,具备新的能力,同时又不改变其原有结构。 如果你希望在无需修改代码的情况下即可使用对象,且希望在运行时为对象新增额外的行为,可以使用装饰模式。或者你用继承来扩展对象行为 ......
设计模式 语言 模式 Python Java

go--时间日期相关

1、获取当天零点的时间戳 //当天0点的时间戳 //获取当前时间 t := time.Now() nowTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) //转换为时间戳格式 timeSamp := n ......
日期 时间 go

GO基础:02 Golang 基础简介

一、标识符 标识符是指定义的具有特殊意义的词,例如变量、常量、函数名等等,任何一门语言中都对自己的标识符有特殊定义的规则。在 Go 语言中,标识符由字母数字和下划线组成,并且只能以字母和下划线开头,例如: 数字、字母和下划线组成:123、abc _ 只能以字母和下划线开头:abc123、_sysVa ......
基础 简介 Golang

GO基础 - 01 Hello,Golang

一、开发环境搭建 1. 下载 SDK 1 // Go官网下载地址 2 https://golang.org/dl/ 3 ​ 4 // Go官方镜像站(推荐) 5 https://golang.google.cn/dl/ 2. 安装 由于Go语言是一门跨平台的编译型语言,我们只需要在一个平台下进行开发 ......
基础 Golang Hello 01

GO基础:03 Golang 基本数据类型

一、整型 1. 整型介绍 Go 语言中,整型可以分为以下几类: 类型描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 184 ......
类型 基础 数据 Golang

Go 语言 new 和 make 关键字的区别

原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m ......
关键字 关键 语言 make new

Go基础:iota关键字的使用

Go基础:iota关键字的使用 iota介绍 iota是go语言的常量计数器,只能在常量的表达式中使用。 其值从0开始,在const中每新增一行将使得iota计数一次,即iota自己增长1(从这点来看,iota可以看成const块中的行索引,记录行数),其值一直自增1直到遇到下一个const关键字, ......
关键字 关键 基础 iota

go cap和len区别

首先要搞清楚容量和长度的区别: 容量是指底层数组的大小,长度指可以使用的大小 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请一个底层数组,拷贝这边的值过去,把原来的数组丢掉。也就是说,容量的用途是:在数据拷贝和内存申请的消耗与内存占 ......
cap len go

(转)Go 语言中的类型断言是什么?

原文:https://juejin.cn/post/6844904153056034823 Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做到以下几件事情 检查 i 是否为 nil 检查 i 存储的值是否为某个类型 具体的使用方式有两种: 第一种: t ......
语言 类型

go path ,go vendor,go mode 模式区别和发展

前言: 包是多个 Go 源码的集合,是一种高级的代码复用方案。 Go语言中为我们提供了很多内置包,如 fmt、os、io,strconv,strings 等 Go 语言的入口 main() 函数所在的包(package)叫 main。 main 包想要引用别的代码,必须同样以包的方式进行引用。 go ......
模式 vendor path mode go

第十章:go mod操作

参考博客: https://blog.csdn.net/weixin_39611043/article/details/110133365 https://www.cnblogs.com/niuben/p/12560104.html 常用命令: // 初始化项目 go mod init test(t ......
mod

第二篇:go包管理

第二篇:go包管理 一、包管理 1 包 即模块,组织go源代码,提供了更好的可重用性和可用性。 每个文件中第一行是package packagename,代表指定了该文件属于那个包。 go语言中,同一层级的文件属于一个包,比如第一层级package main,如果新定义一个demo文件夹,在其中的文 ......

第一篇 go之基本类型与函数使用

go之基本类型与函数使用 一、go语言介绍 1 go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言,特点:语法简单,速度快。 Go是静态(编译型)强类型语言,是区别于解析型语言的弱类型语言(静态:类型固定 强类型:不同类型不允许直接运算)。 python ......
函数 类型

为什么 Python、Go 和 Rust 都不支持三元运算符?

在编程时,我们经常要作条件判断,并根据条件的结果选择执行不同的语句块。在许多编程语言中,最常见的写法是三元运算符,但是,Python 并不支持三元运算符,无独有偶,两个最热门的新兴语言 Go 和 Rust 也不支持! 为什么 Python 不支持三元运算符呢?本文将主要分析 Python 在设计条件 ......
运算符 Python Rust

【组合设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 组合模式(Composite Pattern),又叫部分整体模式,是一种结构型设计模式。用于把一组类似的对象当作一个单一的对象来看。组合模式依据树形结构来组合对象,用不同组件来构建某个部分或整体对象。 如果你需要实现树状对象结构,可以使用组合模式。如果你希望客户端代码以相同方式处理简单和复杂元 ......
设计模式 语言 模式 Python Java

【Design Pattern 23种经典设计模式源码详解】Java/JS/TS/Python/Go不同语言实现

经典设计模式源码详解,用不同语言来实现,包括Java/JS/Python/TypeScript/Go等。结合实际场景,充分注释说明,每一行代码都经过检验,确保可靠。 设计模式是一个程序员进阶高级的必然选择,不懂设计模式,就像写文章不懂得层次,盖房子没有结构。只有充分懂得设计之道,才能真正设计出良好的... ......
设计模式 源码 Pattern 语言 模式

【go语言基础】-数据操作

一. 数组 1. 特征 静态语言的数组特征: 1.大小确定 2.类型一致 只能取值,修改值 由于数组长度固定,在Go里很少直接使用 2. 定义 // 3种方式,声明,初始,省略号 // 变量arr1类型为[5]int var arr1 [5]int // 变量arr2类型为[3]int,同时初始化赋 ......
语言基础 语言 基础 数据

(转)Go语言之高级篇beego框架之Controller

原文:https://www.cnblogs.com/nulige/p/10365110.html 一、Controller 控制器 Controller等同于Django里的view,处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller。写controller的时 ......
Controller 框架 语言 beego

go 函数

前言: 函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段, 可以提高应用的模块性和代码的重复利用率。 正文: 函数定义语法: func 函数名(形式参数列表)(返回值列表){ 函数体 } 函数定义示例1: func getSum(a int, b int) int { return a ......
函数 go

go复杂数据类型 结构体

前言: Go 语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。 通过结构体的方式来实现了面向对象 ,去除了传统的oop语法,继承,重载,构造,析构,隐藏this的特性, 仍然有面向对象三大特性,实现和面向对象方法有所不同,没有extends关键字 , 结构体的内嵌配合接口比面向对象具有 ......
类型 结构 数据

【入门】Go语言指针详解

一、指针介绍 1.1 什么是指针? 指针是一种存储变量内存地址的变量。 Go 语言中的指针与 C/C++ 中的指针类似,但是 Go 语言中的指针不能进行指针运算,也不能进行指针类型转换。 1.2 指针有什么用? 在Go语言中,指针是一种特殊的变量,它存储了一个变量的内存地址。通过指针,我们可以直接访 ......
指针 语言

【入门】Go语言结构体(struct)详解

一、结构体介绍 1.1 什么是结构体? 结构体是一种自定义的数据类型,用于表示一组相关的数据字段。 结构体可以包含任意数量和类型的字段,每个字段都有一个名称和一个类型。 结构体的定义使用关键字 type 和 struct。 二、结构体定义与初始化 2.1 结构体定义 语法: type 结构体名 st ......
语言 结构 struct

使用msf生成shellcode并用Go免杀?

msf生成的裸马现在已经不行了,加壳也只能加冷门壳了,VMP,Shielden,upx不是失效就是效果很差,所以当下,得用shellcode来免杀了 msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST ......
shellcode msf

Go 语言数组和切片的区别

原文链接: Go 语言数组和切片的区别 在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。 另外,这个问题在面试中也经常会被问到,属于入门级题目,看过文章之后,相信你会有一个很好的答案。 数组 数组是同一种数据类型元素的集合,数组在定义时需要指 ......
数组 语言 Go