指针go-struct struct go

Go 语言为什么不支持并发读写 map?

大家好,我是 frank ,「 Golang 语言开发栈」公众号作者。 01 介绍 在 Go 语言项目开发中,我们经常会使用哈希表 map,它的时间复杂度是 O(1),Go 语言中的 map 使用开放寻址法避免哈希碰撞。 Go 语言中的 map 并非原子操作,不支持并发读写操作。 Go 官方认为 m ......
语言 map Go

C++ --- 智能指针

一、智能指针存在的意义 智能指针主要解决以下问题: (1)内存泄漏:内存手动释放,使用智能指针可以自动释放。 (2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 C++里面有四个智能指针:auto_ptr、share_ptr、unique_ptr、weak_ptr。其中后三个是C ......
指针 智能

Go标准库:Go template用法详解

本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入剖析Go template。 入门示例 以下为test.html文件的内容,里面使用了一个template语法{{.}}。 <!DOCTYPE html> <html> <head> < ......
template 标准

2024-01-13:用go语言,现在有一个打怪类型的游戏,这个游戏是这样的,你有n个技能, 每一个技能会有一个伤害, 同时若怪物小于等于一定的血量,则该技能可能造成双倍伤害, 每一个技能最多只能释放

2024-01-13:用go语言,现在有一个打怪类型的游戏,这个游戏是这样的,你有n个技能, 每一个技能会有一个伤害, 同时若怪物小于等于一定的血量,则该技能可能造成双倍伤害, 每一个技能最多只能释放一次,已知怪物有m点血量。 现在想问你最少用几个技能能消灭掉他(血量小于等于0)。 技能的数量是n, ......
技能 双倍 怪物 同时 语言

我开源了一个 Go 学习仓库

这个学习仓库中核心包含《The Go Programing Language》一至八章讲解与分析,同时同步收录往期公众号和博客的精彩文章,更有电子书和建立模板供大家参考学习。 ......
仓库 Go

go的并发梳理

Golang不可不知的7个并发概念 原创 俞凡 DeepNoMind DeepNoMind 2024-01-06 13:10 发表于上海 3人听过 并发性支持是Golang最重要的原生特性之一,本文介绍了Golang中和并发性相关的7个概念。原文: Golang: 7 must-know concu ......

深入浅出 C 语言:学变量、掌控流程、玩指针,全方位掌握 C 编程技能

C 语言简介 C 语言介绍 C 语言的特性 C 语言相对于其他语言的优势 C 程序的编译 C 中的 Hello World 程序 参考文章: C 语言入门:如何编写 Hello World C 语言函数:入门指南 学习变量、数据类型和运算符 C 中的变量和关键字 C 语言中的作用域规则 C 中的数据 ......
深入浅出 指针 变量 全方位 流程

【C语言】指针

指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元,按变量地址存取变量值的方式称为直接访问,如printf("%d",i);和scanf("%d",&i);;另一种存取变量值的方式称为间接访问,即将变量i的地址存放到另一个变量中,在C语言中,指针变量就是用 ......
指针 语言

go语言多态中的类型断言

类型断言案例 package main import ( "fmt" ) type Usb interface{ Connect() DisConnect() } type Phone struct{ Name string } /* * Phone实现了Usb 接口(是指实现了Usb接口的所有方法 ......
语言 类型

快慢指针解决环形链表

可知首先要判断是否有环,然后给出目标的位置。 slow指针走一步,fast指针走两步。当这两个指针都进入环时,fast指针相当于slow指针只走了一步,因此肯定两者会相遇。 但这只是相遇点,不是环起始点,但根据计算可知,此时都以同样的单位速度时,再相遇时就可以得到相交点。 点击查看代码 class ......
快慢 环形 指针

Go语言defer的延迟执行机制

1 题目(单选题) 如下Go语言程序的输出结果是() package main import "fmt" func f1(name string) string { fmt.Println("in f1", name) return name } func f2(name string) strin ......
机制 语言 defer

吴师兄学算法day06 双指针 485. 最大连续 1 的个数

题目:485. 最大连续 1 的个数 易错点: 代码示例: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: cnt = 0 max_cnt = 0 for i in nums: if i == 1: ......
指针 师兄 算法 个数 day

Go函数的定义个细节梳理

func 函数名(参数列表{参数名1 类型,参数名2,类型})(返回值列表{返回值名1 类型,返回值名2 类型}){ 方法体 } 细节梳理: 函数的形参列表可以是多个,返回值列表也可以是多个。 形参列表和返回值列表的数据类型可以是值类型和引用类型。 函数的命名遵循标识符命名规范,首字母不能是数字,首 ......
函数 细节

go使用jwt创建token并验证token的有效性

一、概述 Go使用jwt创建token,验证登录用户的合法性 导入jwt包 go get github.com/dgrijalva/jwt-go 二、代码示例 1.创建token及解析token package token import ( "fmt" "go_workspace/entity" " ......
token 有效性 jwt

吴师兄学算法day06 双指针 80. 合并两个有序数组

题目:80. 删除有序数组中的重复项 II 易错点: 为什么是slow-2? 因为有序 当slow -1 说明与上一个相等,当slow-2说明与上一个相等,并且上上一个也相等,就说明已经有3个相等的了。此时要跳过。 不相等说明要么是第一次出现,要么是第2次出现。出现新的,此时我记录一下 代码示例: ......
数组 指针 师兄 算法 两个

指针的定义--应用场景

1 指针的本质 1.1-指针的定义 如果在程序中定义了一个变量,那么在对程序进行编译时,系统就会给这个变量分配内存单元。在C语言中,指针变量是一种特殊的变量,它用来存放变量地址。指针变量的定义格式如下:基类型 *指针变量名。 另外注意:指针变量加1后,偏移的长度是其基类型的长度,例如int *p; ......
指针 场景

吴师兄学算法day06 双指针 26. 删除有序数组中的重复项

题目:26. 删除有序数组中的重复项 易错点: 为什么不可以写大于nums[slow] 因为会出现多个[0,1,2,2,...]情况 代码示例: from typing import List class Solution: def removeDuplicates(self, nums: List ......
数组 指针 师兄 算法 day

[linux kernel] struct pid && the way the kernel used to cast uint32_t pid to struct task_struct

摘抄内容引用自linux kernel document description pre the initialization and the manage of the struct pid is use IDR.(implement by hash table->(why not array?- ......
struct kernel task_struct amp pid

go-carbon v2.3.5 发布,轻量级、语义化、对开发者友好的 golang 时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装 ......
轻量 轻量级 语义 开发者 go-carbon

吴师兄学算法day06 双指针 88. 合并两个有序数组

题目:88. 合并两个有序数组 易错点: 注意 判断i合法,不可以写if nums[i] 会下标越界 掌握好边界条件,num1[i] 和nums2[j]大于或者大于等于都可以。 代码示例: class Solution: def merge(self, nums1: List[int], m: in ......
数组 指针 师兄 算法 两个

7引用-右值引用-引用结合const和指针

引用 引用和指针的区别 引用是一种更安全的指针。 引用必须初始化,指针可以不初始化。引用初始化为另一个同类变量,特殊情况下可初始化为常量。 引用只有一级,没有多级引用。 从汇编指令层面看。对引用的处理,是采用指针的方法。因为引用是一种const指针。通过引用变量修改所引用内存的值,与通过指针解引用修 ......
指针 const

从错误中学习: 了解Go编程的6个坏习惯

从错误中学习: 了解Go编程的6个坏习惯 原创 俞凡 DeepNoMind DeepNoMind 2024-01-07 10:35 发表于上海 Go编程的某些实践容易被误用或忽视,了解这些特性的特点和陷阱,可以帮助我们编写更好的代码。原文: 5+ BAD Practices In Go: Learn ......
错误 中学

go 实现一个接口

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。 package main import ( "fmt" ) type Phone interface { call() } type NokiaPhone struct { ......
接口 go

滑动窗口(双指针的又一应用)

滑动窗口相当于双指针的变形,通过j指向末尾边界,这样遍历就只有O(n)的数量级,再通过i指针作为起始边界,while循环确定最短的长度。因为i j所框定的边界像窗口,所以叫滑动窗口。 用于解决的问题是最优区间的问题,记忆方法是右遍历,左判断,确定最佳区间。 还有一个技巧是可以用INT_MAX表示一个 ......
指针

双指针(1)

目录344反转字符串替换数字反转单词null 344反转字符串 我如果要反转,就是最前面和最后面的字符进行交换, //双指针的应用 class Solution { public: void reverseString(vector<char>& s) { int left=0,right=s.si ......
指针

数组指针

在数组指针中,*和[]的意义是相似的,都是优先降维数在降指针的级数 比如p是一个指向n维数组的一级指针,那么p[][][]就是一个指向n-3维数组的指针,打了n个中括号之后就变成了指向一个点的指针,此时再*一下就变成了了值(或者再括号一下) 如果p是一个指向n维数组的三级指针,那么打了n个中括号之后 ......
数组 指针

Go+Gin+xorm+MySql实现增删改查

一、概述 承接上一篇(ps:原生增删改查),本篇使用xorm实现增删改查。 之所以要使用xrom是因为xrom可以极大的缩小操作数据库的成本。 使用rom之前需要导入响应的包 go get github.com/go-xorm/xorm #安装xorm go get xorm.io/core go ......
MySql xorm Gin Go

Go语言常见错误| 将接口作为返回值

Go语言常见错误| 将接口作为返回值 原创 云原生Go 源自开发者 2024-01-11 07:00 发表于广东 听全文 源自开发者 专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。 69篇原创内容 公众号 在Go语言开发过程中,一个常见的错误是错误地将 ......
接口 常见 错误 语言

C语言 指针偏移量计算

#include <stdio.h> struct s { int a; int b; }; int main() { struct s s1; // (struct s*)0表示0x0作为struct s首地址 // &((struct s*)0)->a代表a地址 // 因为struct s首地址 ......
指针 语言

[cpp]: class/struct -- 初始化‘实例对象’

[cpp]: class/struct -- 初始化‘实例对象’ 一、说明 1、编译标准: std = c++20 2、编译语句: g++ -std=c++20 -O2 -Wall -pedantic -pthread main.cpp && ./a.out 二、class/struct(初始化‘实 ......
实例 对象 struct class cpp
共3180篇  :1/106页 首页上一页1下一页尾页