首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏写代码和思考

    Go语言基础6 - 并发

    概述 我们将用几节来学习Go语言基础,本文结构如下: 1. 并发 通过通信共享内存 Go程 信道 信道中的信道 并行化 可能泄露的缓冲区 2. Go语言另辟蹊径,它将共享的值通过信道传递, 在任意给定的时间点,只有一个Go程能够访问该值,数据竞争从设计上就被杜绝了。 例如,引用计数通过为整数变量添加互斥锁来很好地实现。 Go将它简化为一句口号: 不要通过共享内存来通信,而应通过通信来共享内存。 1.2 GoGo程具有简单的模型: 它是与其它Go程并发运行在同一地址空间的函数。 在函数或方法前添加 go 关键字能够在新的Go程中调用它。当调用完成后, 该Go程也会安静地退出,示例: go list.Sort() // 并发运行 list.Sort,无需等它结束。 错误 Go语言具有多值返回特性, 使得它可以在返回常规的值,和详细的错误描述。 按照约定,错误的类型通常为 error,这是一个内建的简单接口。

    73500发布于 2020-03-16
  • 来自专栏Golang开发

    Go语言核心编程(6)——反射

    注:本文是《Go语言核心编程》(李文塔/著)个人读书笔记 reflect.Type type rtype struct { size uintptr ptrdata uintptr

    86120发布于 2019-05-29
  • 来自专栏《数据结构》

    初级】C语言——函数

    2.C语言中函数的分类 1.库函数 2.自定义函数 2.1库函数 使用库函数,必须包含 #include 对应的头文件。 //打印100~200之间的素数 //素数是只能被1和他本身整除的数 //7 //1和7整除 //2 3 4 5 6 // int main() { int i = 0; int count = 0 else { return mid;//找到了返回下标 } } return -1;//找不到 } int main() { int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; // 0 1 2 3 4 5 6 7 8 9 int k = 7; //找到了,返回下标 //找不到,返回-1 int ret = binary_search 6. 函数的声明和定义 6.1函数声明 1. 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数 声明决定不了。 2.

    2.2K10编辑于 2023-04-16
  • 来自专栏《数据结构》

    初级】C语言——数组

    C 语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,所以写代码时,要做好越界的检查。 4.数组作为函数参数 数组在传参的时候直接给数组名。 1]; arr[j + 1] = tmp; } } } }*/ int main() { //数组 //把数组的数据排成升序 int arr[] = { 9,8,7,6,5,4,3,2,1,0 }; //0 1 2 3 4 5 6 7 8 9 int sz = sizeof(arr) / sizeof(arr[0]); //冒泡排序的算法,对数组进行排序 bubble_sort(arr

    2.8K20编辑于 2023-04-16
  • 来自专栏ai_houzi

    go语言基础6-面向对象

    面向对象特点 go语言仅支持封装,不支持继承和多态 go语言没有class,只有struct 结构体 实例 type treeNode struct { value int left root.right.left = new(treeNode) nodes := []treeNode{ {3,nil,nil}, {}, {6, 只有使用指针才可以改变结构内容 nil指针也可以调用方法 值接收者VS指针接收者 要改变内容必须使用指针接收者 结构过大也考虑使用指针接收者 一致性:建议有指针接受者,最好都是指针接收者 值接收者,go 语言特有 值/指针接收者均可以接收值/指针 封装 名字一般使用CamelCase 首字母大写:public 首字母小写:private 包 每个目录一个包 main包,包含可执行入口 为结构定义的方法必须放在同一个包内

    62720发布于 2019-04-04
  • 来自专栏《数据结构》

    初级】C语言——指针

    //0 1 2 3 4 5 6 7 8 9 a b c d e f //0 //1 //10 //11 //100 //1010 //1111 结论: (1)指针类型决定了指针在被解引用的时候访问几个字节 6.二级指针 指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里? 这就是 二级指针 。

    1.2K30编辑于 2023-04-16
  • 来自专栏我的小碗汤

    6个最好的Go语言Web框架

    原文:Top 6 web frameworks for Go as of 2017 作者:Edward Marinescu 译者:roy 译者注:本文介绍截至目前(2017年)最好的6Go语言Web GO 语言爱好者的最佳Web框架 如果你是自己写一个小应用程序,那你可能不需要Web框架。但是如果你要做产品,那么你肯定需要一个好的框架。 简介 Go 是一个快速增长的开源编程语言,用于构建简单、快速和可靠的软件。点这里看有哪些大公司在使用Go语言来构建他们的服务。 Beego: 一个Go语言下开源的,高性能Web框架 https://github.com/astaxie/beego https://beego.me Buffalo: 一个Go语言下快速Web开发框架 https://github.com/kataras/iris https://iris-go.com Revel: 一个高生产率,全栈Go语言的Web框架。

    2.1K10发布于 2018-08-22
  • 来自专栏《数据结构》

    初级】C语言——结构体

    以上是结构体传参的两种方式,我们可以比较得到,结构体地址传参比结构体传参好,因为结构体地址传参不用开辟新的空间,而是通过地址直接访问。因此,结构体地址传参更加高效。

    1.6K20编辑于 2023-04-16
  • 来自专栏码洞

    《快学 Go 语言》第 6 课 —— 字典

    字典的创建 关于 Go 语言有很多批评的声音,比如说它不支持范型。其实严格来说 Go 是支持范型的,只不过很弱,范型在 Go 语言里是一种很弱的存在。比如数组切片和字典类型都是支持范型的。 初学者看到这种奇怪的用法是需要花时间来消化的,读者不需要想太多,它只是 Go 语言提供的语法糖,内部并没有太多的玄妙。 字典的遍历 字典的遍历提供了下面两种方式,一种是需要携带 value,另一种是只需要 key,需要使用到 Go 语言的 range 关键字。 语言官方就是没有提供,读者还是努力习惯一下吧 线程(协程)安全 Go 语言的内置字典不是线程安全的,如果需要线程安全,必须使用锁来控制。 var names = make([]string, len(fruits)) var scores = make([]int, len(fruits)) 下一节我们开讲 Go 语言的字符串

    63220发布于 2018-12-14
  • 来自专栏开发语言-Go

    Go语言学习6-字典类型

    引言上篇我们介绍了Go语言的《切片类型》,本篇我们了解一下Go语言的字典类型。主要如下:主要内容在Go语言中,字典类型的官方称谓是Map, 它是哈希表(Hash Table)的一个实现。1. 类型表示法如果一个字典类型的键的类型为K,且元素的类型为T,那么用于表示这个字典类型的类型字面量:map[K]T字典类型声明中的元素类型可以是任意一个有效的Go语言数据类型(除了函数类型、字典类型或切片类型 知识点:在Go语言中,只有“传值”而没有“传引用”。函数内部对参数值的改变是否会在该函数之外体现出来(或者说是否反映在该参数值的原值上),只取决于这个被改变的值的类型是值类型还是引用类型。 Go语言官方认为,在大多数使用字典值的地方并不需要多线程场景下的安全访问控制。 结语本篇介绍了 Go 语言的字典类型,下一篇博文介绍 Go 语言的函数类型,敬请期待!!!

    44211编辑于 2024-09-20
  • 来自专栏XinChen's Tec

    GoLang6 - Go语言运算符

    Go 语言运算符 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 A 输出结果 2 % 求余 B % A 输出结果 0 ++ 自增 A++ 输出结果 11 -- 自减 A-- 输出结果 9 ```java package main import "fmt" // Go 语言运算符 fu

    30820编辑于 2023-02-27
  • 来自专栏WebDeveloper

    我给 ”Go 语言“ 开发了 6 个在线工具我给 ”Go 语言“ 开发了 6 个在线工具

    工具快速访问 JSON 转 GO: https://www.printlove.cn/tools/json2go YAML 转 GO: https://www.printlove.cn/tools/yaml2go SQL 转 go-zero Model: https://printlove.cn/tools/sql2gozero SQL 转 GORM Model: https://www.printlove.cn DSL: https://printlove.cn/tools/sql2es/ SQL 转 entgo schema: https://printlove.cn/tools/sql2ent JSON转GO 网址:https://www.printlove.cn/tools/json2go 1. 效果图 image YAML转GO 网址:https://www.printlove.cn/tools/yaml2go 将 yaml 格式自动转化为 Go Struct 结构。

    74510编辑于 2021-12-07
  • 来自专栏权子

    C语言_初级指针(2)

    指针和数组之间是什么关系呢? 指针变量就是指针变量,不是数组,指针变量大小是4/8字节,专门是用来存放地址的。 数组就是数组,不是指针,数组是一块连续的空间,可以存饭一个或者多个类型相同的数据。 联系: 1.数组中,数组名其实是数组数组首元素的地址,数组名 == 地址 == 指针。 2.当我们知道数组首元素的地址的时候,因为数组是连续存放的,所以通过指针就可以便利访问数组。 3.数组是可以通过指针来访问的。

    31820编辑于 2023-10-10
  • 来自专栏【腾讯云开发者】

    Go语言“正统”在中国?这6点教你写好Go代码!

    导读 数据显示,中国 Gopher 人数全球占比最高,Go 语言在国内的火热态势甚至让创始人 Rob Pike 惊讶到不敢想象,颇有一种 Golang 正统在中国的感觉。 Go 语言也是腾讯内部最热门的编程语言,随着云计算技术的快速普及,使用 Go 语言编写的 IT 基础设施也变得更为广泛流行,让 Go 语言的热度和人才需求度都进一步得到提升。 目录 1 Golang 实现 SOLID 设计原则 2 Golang 实现常见设计模式 3 Golang 易疏忽规范 4 Golang 编码陷阱 5 Golang 编码相关工具 6 如何做好 CR? 这里需要留意之前说的 Go 里是值拷贝,如果不是引用返回这里返回的是0。 检查 Go 的源码并报告可以的问题,我们可以在提交代码前,或者是在流水线配置 Go 代码的强制检验。

    1K34编辑于 2023-12-26
  • 来自专栏Golang语言社区

    Golang语言情怀-第6Go 语言运算符

    本期给同学们梳理下Go语言的运算符,如下: ---- 算术运算符 下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20。 (A <= B) 为 True 逻辑运算符 下表列出了所有Go语言的逻辑运算符。假定 A 值为 True,B 值为 False。 运算符 描述 实例 && 逻辑 AND 运算符。 下表列出了位运算符 &, |, 和 ^ 的计算: p q p & q p | q p ^ q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 Go 语言支持的位运算符如下表所示 A >> 2 结果为 15 ,二进制为 0000 1111 赋值运算符 下表列出了所有Go语言的赋值运算符。 Golang语言情怀 ID:wwwGolangLtd www.Golang.Ltd 游戏服务器架构丨分布式技术丨大数据丨Go语言学习

    72010发布于 2021-01-12
  • 来自专栏区块链入门

    【知识】最好的6Go语言Web框架

    GO 语言爱好者的最佳Web框架 如果你是自己写一个小应用程序,那你可能不需要Web框架。但是如果你要做产品,那么你肯定需要一个好的框架。 简介 Go 是一个快速增长的开源编程语言,用于构建简单、快速和可靠的软件。点这里看有哪些大公司在使用Go语言来构建他们的服务。 本文提供了所有必要的信息,以帮助开发人员了解使用Go语言开发Web应用程序的最佳选项。。 本文包含了最详细的框架比较,通过尽可能多的角度(人气,社区支持,内置功能等)来比较最知名的几个Web 框架。 Beego: 一个Go语言下开源的,高性能Web框架 https://github.com/astaxie/beego https://beego.me Buffalo: 一个Go语言下快速Web开发框架 https://github.com/kataras/iris https://iris-go.com Revel: 一个高生产率,全栈Go语言的Web框架。

    1.9K20发布于 2019-07-15
  • 来自专栏C语言基础

    c语言之“数组”初级

    前言 牛牛又和大家见面了,本篇牛牛要讲的内容是c语言中有关数组的内容。 欢迎大家一起学习,共同进步。 补充小知识: 1.sizeof:c语言中的一个关键字,也是一种操作符。是用于计算数据在内存中所占的字节数。 1.4 一维数组的存储 数组在内存中是怎样存储的呢? 试着猜一下下面代码运行的结果: 补充小知识: strlen:C 语言中的库函数中的一种,用于计算字符串的长度,直到遇到结束字符(‘\0’),但不包括空格字符。 语句2:值为6是因为数组2只有6个元素,后面并没有’\0‘; 语句3:值为6是因为“abcdef\0”,strlen函数遇到’\0’就结束了,只计算’\0’前面的字符串长度。 注意:C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的。 建议我们在使用数组的时候要注意检查,数组是否越界。

    1.2K30编辑于 2022-12-06
  • 来自专栏有趣的django

    滴水逆向初级-C语言(二)

    2.1.C语言的汇编表示 c语言代码 int plus(int x,int y) { return 0; } void main() { __asm { mov eax,eax } int plus(int x,int y) { return x+y; } void main() { __asm { mov eax,eax //断点调试 F7,F5,右键Go C语言中,返回值存储在EAX中 2.3.变量 1、声明变量 变量类型变量名; 变量类型用来说明宽度是多大 int 4个字节 short 2个字节 char 1个字节 变量名的命名规则: 1、只能以字母、数字、下划线组成,且第一个字母必须是字母或下划线 2、区分大小写 3、不能使用C语言的关键字 2、全局变量: 1)编译的时候就已经确定了内存地址和宽度,变量名就是内存地址的别名。 例子: CE搜索基址 C语言代码 #include <windows.h> #include <stdio.h> int x; void main() { x = 1234567; while

    1.7K40发布于 2021-04-13
  • 来自专栏WebDeveloper

    我给 ”Go 语言“ 开发了 6 个在线工具

    工具快速访问 JSON 转 GO: https://www.printlove.cn/tools/json2go YAML 转 GO: https://www.printlove.cn/tools/yaml2go SQL 转 go-zero Model: https://printlove.cn/tools/sql2gozero SQL 转 GORM Model: https://www.printlove.cn DSL: https://printlove.cn/tools/sql2es/ SQL 转 entgo schema: https://printlove.cn/tools/sql2ent JSON转GO 网址:https://www.printlove.cn/tools/json2go 1. 效果图 YAML转GO 网址:https://www.printlove.cn/tools/yaml2go 将 yaml 格式自动转化为 Go Struct 结构。

    67131编辑于 2021-11-30
  • 来自专栏日积月累1024

    Go语言入门经典》4~6章读书笔记

    第4章 函数 4.1 函数是什么 4.1.2 返回单个值 func isEven(i int) bool{ return i % 2 == 0; } 4.1.3 返回多个值 在Go语言中,可在函数签名中声明多个返回值 在Go语言中,能够传递可变数量的参数,但它们的类型必须与函数签名指定的类型相同。要指定不定参数,可使用3个点(…)。 在下面的示例中,函数签名指定函数可接受任意数量的int参数。 在Go语言中,使用数组存在一定的局限性。采用前面的数组cheeses表明方试,您无法在数组中添加元素;然而切片比数组更灵活,您可在切片中添加和删除元素,还可复制切片中的元素。 6.2.1 在切片中添加元素 Go语言提供了内置函数append,让您能够增大切片的长度。append会在必要时调整切片的长度,但它对程序员隐藏了这种复杂性。 在等号右边,使用Go语言内置函数make创建了一个映射,其键的类型为字符串,而值的类型为整数。 将这个空映射赋给了变量players。

    1K20发布于 2020-12-07
领券