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

    Go语言基础6 - 并发

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

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

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

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

    75920发布于 2019-05-29
  • 来自专栏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包,包含可执行入口 为结构定义的方法必须放在同一个包内

    54020发布于 2019-04-04
  • 来自专栏我的小碗汤

    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框架。

    1.9K10发布于 2018-08-22
  • 来自专栏开发语言-Go

    Go语言学习6-字典类型

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

    27911编辑于 2024-09-20
  • 来自专栏码洞

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

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

    52820发布于 2018-12-14
  • 来自专栏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

    23720编辑于 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 结构。

    64510编辑于 2021-12-07
  • 来自专栏【腾讯云开发者】

    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 代码的强制检验。

    78534编辑于 2023-12-26
  • 来自专栏区块链入门

    【知识】最好的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.8K20发布于 2019-07-15
  • 来自专栏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语言学习

    59010发布于 2021-01-12
  • 来自专栏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 结构。

    57431编辑于 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。

    86520发布于 2020-12-07
  • 来自专栏精益码农

    闻道Go语言6月龄必知必会

    大家好,我是马甲哥, 学习新知识, 我的策略是模仿-->归纳--->举一反三, 在同程倒腾Go语言一年有余,本次记录《闻道Go语言6月龄必知必会》,形式是同我的主力语言C#做姿势对比。 go语言 --- C#语言 --- module assembly pkg go get github.com/thoas/go-funk package Install-Package Masuit.Tools.Core go语言每行代码后不需要加分号;C#语言每行代码后需要加分号。 go对于括号的使用有要求:斜对称, C#无要求。 一般认为go是C语言的家族,但是go的指针弱化了C语言的指针操作,go指针的作用仅操作其指向的对象, 不能基于地址这个概念做指针移位, 也不能基于地址这个概念做类型转化。 -1-goroutines-vs-async-await 本文限于篇幅,只记录了go语言和C#语言的入门6月龄的核心差异点和重难点,高手轻喷,也欢迎指出问题,后续会不断完善月龄数据, 请有心人持续关注左下角原文

    62830编辑于 2022-12-21
  • 来自专栏Go编程点滴

    Go语言技巧 - 6.【深入Go Module】探索最小版本选择的机制

    这里,我以go语言1.15.11版本为例,具体的代码路径在src/cmd/go/internal/modcmd下。 go mod tidy是整理Go Module最常用的指令之一,这里我们就来看看tidy.go文件。 unused modules", Long: ` Tidy makes sure go.mod matches the source code in the module. It also adds any missing entries to go.sum and removes any unnecessary ones. , v) 至此,对Go Module的讲解告一段落了。

    89620发布于 2021-08-05
  • 来自专栏python3

    Go语言】【3】GO语言常量

      通常情况下语言入门前会讲一堆背景和特性,目的是为了能让学习者对该语言有一个大概的认识,但这里我想直接进入细节,不是因为任性,而是因为常量是编程语言最基本的组成元素,这与语言背景无关。 当然可以,要知道GO语言是最懂程序员的哟 :) const PI = 3.1415926535897932 const EluerE = 2.718281828459045 const value = //星期六 ) 当每个const出现时iota被重置为0,所以这里的Sunday值为0,同时后面没有再出现const,所以第二个iota自动加1,Monday的值为1,依次类推,Saturday的值为6 ---- 【编后话】: 开始接触GO,感觉它就是一个大杂烩,里面即有C语言的影子,也有Java语言的影子,也有JavaScript脚本的影子,同时还有Pascal语言的痕迹,但使用使用着感觉这符合人的正常思维 借用知乎用户的话讲:GO语言是一门看似简单实际并不简单,貌似外表丑陋实则另有考究的语言。 ----

    2.4K10发布于 2020-01-07
  • 来自专栏Golang语言社区

    Go 语言社区】Go语言数组

    Go编程语言提供称为数组的数据结构,其可存储相同类型的元素的一个固定大小的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。 声明数组 要声明在Go语言数组,程序员指定元素的类型以及如下的数组所需元件的数目: var variable_name [SIZE] variable_type 这就是所谓的一维数组。 = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109 数组是很重要的在Go语言中,应该需要了解更多的细节。 有下列关系到数组几个重要的概念Go程序员是应该清楚的: 概念 描述 多维数组 Go支持多维数组。

    2K150发布于 2018-03-20
  • 来自专栏数据小冰

    Go语言中常见100问题-#6 Interface on the producer side

    生产者端接口 Go语言中常见100问题-#5 Interface pollution中介绍了程序中使用接口是有价值的。在编码的时候,接口应该放在哪里呢? 在生产者端定义接口,与具体实现放在一起,这是具有C#或Java背景语言的人惯用写法。然而,在Go语言中,在大多数情况下,我们不应该采用这种写法。下面通过一个示例进行说明。 正如Go语言中常见100问题-#5 Interface pollution所提到的,与具有显示实现接口的语言相比,Go中通过隐式实现接口,这会带来一些变化,像其它语言惯用的生产者端接口在Go语言中并不是最佳实践 前面不是说Go中不推荐生产者端接口吗?没有错,在这种情况下,encoding包中定义的抽象在标准库中使用,语言设计者知道预先创建这种抽象是有价值的。 因此,在大多数情况下,Go语言中的接口应该位于消费者端。但是,在特定情况下,例如,当我们知道(不是预想)抽象对消费者有帮助时,我们可能希望将其放在生产者端。

    58730编辑于 2022-12-18
  • 来自专栏从流域到海域

    Go语言起源 【Go语言圣经笔记】

    Go语言起源 以下早期语言Go语言的设计产生了重要影响: C Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”。 Go从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。 Rob Pike尝试将CSP引入实际的编程语言: Squeak(老鼠间交流的语言)管道静态创建 进版的Newsqueak语言 提供了类似C语言语句和表达式的语法和类似Pascal语言的推导语法 带垃圾回收的纯函数式语言 Alef -> Limbo http://talks.golang.org/2012/concurrency.slide#9 APL iota Scheme 词法作用域与嵌套函数 Go 中的创新设计: 切片 为动态数组提供了有效的随机存取的性能 链表的底层共享机制 defer语句 参考文献 Go语言圣经(简体中文版)

    1.2K20编辑于 2021-12-06
  • 来自专栏Golang语言社区

    Go 语言社区】Go 语言Map(集合)

    Go 语言Map(集合) Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

    1.5K90发布于 2018-03-20
领券