首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Golang开发

    Go语言核心编程(4)——接口

    注:本文是《Go语言核心编程》(李文塔/著)个人读书笔记 接口声明 Go 语言的接口分为接口字面量类型和接口命名类型,接口的声明使用 interface 关键字 。 空接口表示为interface{} 空接口用途 1 GO语言没有泛型,如果一个函数需要接收任意类型的参数, 则参数类型可以使用空接口类型,这是弥补没有泛型的一种手段。

    1K20发布于 2019-05-29
  • 来自专栏ai_houzi

    go语言基础4-指针

    func swap(a, b int) { a, b = b, a } func main(){ a ,b := 3 ,4 swap(a,b) fmt.Println(a,b) //输出为3,4 } func swap(a, b *int) { *a, *b = *b, *a } func main(){ a ,b := 3 ,4 swap(&a,&b) gmt.Println(a,b)//输出为4,3 } go语言指针不能运算 go语言只有值传递一种方式

    42520发布于 2019-04-04
  • 来自专栏XinChen's Tec

    GoLang4 - Go语言变量

    Go 语言变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 : var identifier type 可以一次声明多个变量: var identifier1, identifier2 type eg package main import "fmt" // Go 语言变量 func main() { var a string = "Runoob" fmt.Println(a) var b, c int = 1, 2 fmt.Println

    24030编辑于 2023-02-27
  • 来自专栏写代码和思考

    Go语言学习之旅 4 - Go 的并发原语

    Go语言学习笔记 3 - Go 的并发原语 概述 连续三节的内容如下: 第一节覆盖了基本语法及数据结构 第二节讨论了方法与接口 第三节则简单介绍了 Go 的并发原语。 GoGo 程(goroutine)是由 Go 运行时管理的轻量级线程。 go 函数名 会启动一个新的 Go 程并执行这个函数。 比如: go say("world") // 将启动一个线程来执行 say 函数 这里说"线程"其实不严谨,不过便于理解。 Go 程在相同的地址空间中运行,因此在访问共享的内存时必须进行同步。 这使得 Go 程可以在没有显式的锁或竞态变量的情况下进行同步。 更多学习资料 http://docscn.studygolang.com/doc/ https://go-zh.org/# https://tour.go-zh.org/list

    73300发布于 2020-03-16
  • 来自专栏Golang语言社区

    Golang语言情怀-第4Go 语言变量

    本期给大家梳理下Go语言的变量,Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 var binge ,golang int 例如: package main import "fmt" func main() { var binge string = "Golang语言情怀 " fmt.Println("微信公众账号:",a) var b, c int = 1, 2 fmt.Println(b, c) } 输出结果: 微信公众账号:Golang语言情怀 1,2 变量的另外一种定义形式: := 例如: binge := "www.Golang.Ltd" 注:仅可定义局部变量 变量定义后,Go语言默认0值 例如: var ibinge int Golang语言情怀 ID:wwwGolangLtd www.Golang.Ltd 游戏服务器架构丨分布式技术丨大数据丨Go语言学习

    32610发布于 2021-01-12
  • 来自专栏开发语言-Go

    Go语言学习4-数组类型

    引言上篇我们了解 Go语言的基本数据类型,现在开始介绍数组类型。主要如下:主要内容在 Go 语言中,数组被称为 Array,就是一个由若干相同类型的元素组成的序列。1. 数组类型声明中的元素类型可以是任意一个有效的Go语言数据类型(预定义数据类型、复合数据类型,自定义数据类型或者类型字面量)。 例如:[6]string{0: "Go", 1: "Python", 2: "Java", 3: "C", 4: "C++", 5: "PHP"}这个字面量也体现了在默认情况下的各个元素值与索引值的对应关系 在 Go 语言中,一个数组即是一个值。数组类型的变量即代表了整个数组,不像C语言中的数组代表一个指向数组的第一个元素值的指针。 总结本篇介绍了 Go 语言的数组类型,下篇将介绍 Go 语言的切片类型,敬请期待!

    38921编辑于 2024-08-01
  • 来自专栏小尘哥的专栏

    4Go语言的核心特性

    Go语言,作为编程语言的后生,站在巨人的肩膀上,吸收了其他一些编程语言的特点。 Go 编程语言是一个开源项目,它使程序员更具生产力。Go 语言具有很强的表达能力,它简洁、清晰而高效。 这里我们并不会深入讨论GO语言的具体语法,只会将语言中关键的、对简化编程具有重要意义的方面介绍给大家,体验Go的核心特性。 对比JAVA的多线程和GO的协程实现,明显更直接、简单。这就是GO的魅力所在,以简单、高效的方式解决问题,关键字go,或许就是GO语言最重要的标志。 开发者基本上可以完全忽略这个Go语言和C语言的边界是如何跨越的。 golang可以和C程序交互,但不能和C++交互。 作为强类型语言,隐式的类型转换是不被允许的,记住一条原则:让所有的东西都是显式的。 简单来说,Go是一门写起来像动态语言,有着动态语言开发效率的静态语言

    99920发布于 2019-05-28
  • 来自专栏python3

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

      通常情况下语言入门前会讲一堆背景和特性,目的是为了能让学习者对该语言有一个大概的认识,但这里我想直接进入细节,不是因为任性,而是因为常量是编程语言最基本的组成元素,这与语言背景无关。 当然可以,要知道GO语言是最懂程序员的哟 :) const PI = 3.1415926535897932 const EluerE = 2.718281828459045 const value = 刚开始写GO代码很不习惯,总是在后面追加一个分号,然而一保存Sublime text很贴心地帮我省略掉了 4、常量定义的右值可以是一个编译期运算的常量表达式 例如: const algorithm = ---- 【编后话】: 开始接触GO,感觉它就是一个大杂烩,里面即有C语言的影子,也有Java语言的影子,也有JavaScript脚本的影子,同时还有Pascal语言的痕迹,但使用使用着感觉这符合人的正常思维 借用知乎用户的话讲:GO语言是一门看似简单实际并不简单,貌似外表丑陋实则另有考究的语言。 ----

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

    Go 语言社区】Go语言数组

    Go编程语言提供称为数组的数据结构,其可存储相同类型的元素的一个固定大小的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。 声明数组 要声明在Go语言数组,程序员指定元素的类型以及如下的数组所需元件的数目: var variable_name [SIZE] variable_type 这就是所谓的一维数组。 下面是一个例子,分配数组的单个元素: balance[4] = 50.0 以上语句用50.0的数值作为数组中的元素分配到第5个位置。 语言中,应该需要了解更多的细节。 有下列关系到数组几个重要的概念Go程序员是应该清楚的: 概念 描述 多维数组 Go支持多维数组。

    2K150发布于 2018-03-20
  • 来自专栏码洞

    《快学 Go 语言》第 4 课 —— 低调的数组

    --- Go 语言之父 Rob Pike Go 语言里面的数组其实很不常用,这是因为数组是定长的静态的,一旦定义好长度就无法更改,而且不同长度的数组属于不同的类型,之间不能相互转换相互赋值,用起来多有不方便之处 /main.go:7:3: invalid array index 101 (out of bounds for 5-element array) 上面的代码运行结果说明了 Go 语言会对数组访问下标越界进行编译器检查 ,比不得 C 语言的数组访问性能。 /main.go:8:4: cannot use a (type [9]int) as type [10]int in assignment 可以看出不同长度的数组之间赋值是禁止的,因为它们属于不同的类型 4 5 0 1 1 2 2 3 3 4 4 5 考虑到切片的内容太多,我们将独立一节专门讲解切片,下一节将是 Go 语言的极有价值的一节,读者一定要努力搞清楚每一个细节。

    46420发布于 2018-12-13
  • 来自专栏写代码和思考

    Go语言基础4 - 数据(基本数据结构)

    概述 我们将用几节来学习Go语言基础,本文结构如下: 数据 new 分配 构造函数与复合字面 make 分配 数组 切片 二维切片 映射 new 分配 new 函数格式为: new(T) 特点:它返回一个指针, 该指针指向新分配的,类型为 T 的零值 内建函数 new 是个用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存 数组 在规划内存布局时,数组是非常有用的,有时还能避免过多的内存分配, 在Go中,数组主要用作切片的构件,在构建切片时使用。 数组在Go和C中的主要区别。在Go中: 数组是值。 以下简单的例子 x := []int{1,2,3} x = append(x, 4, 5, 6) fmt.Println(x) 将打印 [1 2 3 4 5 6] 将一个切片追加到另一个切片很简单:在调用的地方使用 ... x := []int{1,2,3} y := []int{4,5,6} x = append(x, y...) fmt.Println(x) 如果没有 ...

    1K00发布于 2020-03-16
  • 来自专栏Go编程点滴

    Go语言学习路线 - 4.入门篇:快速体系化地入门Go语言

    从一本书入门Go语言 如今互联网资料泛滥,入门编程语言的途径有很多种选择,但如果要我推荐,只有一个建议 - 研读一本该编程语言最优秀的基础书籍。 对于Go语言,我推荐 《Go程序设计语言》(The Go Programming Language),也被称为 Go语言圣经。参考链接:当当链接 和 网页版链接。 建议Go语言入门后,跳出具体编程语言的视角,好好地理解一下面向对象的思想。 4. Go语言的工程化 范围 第10章 包和go工具(简单通读里面的一些思想即可,最新的包管理已经完全采用go mod) 第11章 测试 导读 Go的包管理工具几经波折,目前已经由go mod一统江湖了。 结束语 总体来看,入门Go语言的关键放在 2、3、4 三点即可,也就是 第2~9章,多敲代码、反复品读。

    58450发布于 2021-08-05
  • 来自专栏日积月累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编程点滴

    Go语言微服务框架 - 4.初识GORM库

    而在Go语言里,GORM已经成了对接MySQL事实上的标准,那么也就不去横向对比其它库了。 GORM库是一个很强大、但同时也是一个非常复杂的工具。 为了支持复杂的SQL语言,它比之前的配置文件加载工具github.com/spf13/viper要复杂不少。 DeletedAt `gorm:"index"` } 从上面的一些操作可以看到,我推荐的使用方式有2个特点: 尽可能简单,不要出现魔法变量,比如常量字符串 不要让框架强约束表结构的设计,也是为了后续迁移框架、甚至语言时成本更低 整个使用过程,对于一个不熟悉SQL语言的同学来说是很痛苦的,需要大量调试问题的时间;而对于熟悉SQL的朋友也会很疑惑,例如First等这种自定义命名的底层实现。 Go语言提供的各类组件,很多都是开源社区对传统服务或云原生理念的自我实践,没有绝对的正确与错误。 **那如今社区上的那些微服务框架都不值一提吗?**并不是。

    1.7K20发布于 2021-09-24
  • 来自专栏从流域到海域

    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
  • 来自专栏从流域到海域

    Go语言指针 【Go语言圣经笔记】

    摘自:Go语言圣经(简体中文版) 2.3.2 指针 一个变量对应一个保存了变量对应类型值的内存空间。 var x, y int fmt.Println(&x == &x, &x == &y, &x == nil) // true false false 在Go语言中,返回函数中局部变量的地址也是安全的 指针特别有价值的地方在于我们可以不用名字而访问一个变量,但是这是一把双刃剑:要找到一个变量的所有访问者并不容易,我们必须知道变量全部的别名(译注:这是Go语言的垃圾回收器所做的工作)。 $ go build gopl.io/ch2/echo4 $ ./echo4 a bc def a bc def $ ./echo4 -s / a bc def a/bc/def $ . /echo4 -n a bc def a bc def$ $ ./echo4 -help Usage of .

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

    Go 语言社区】Go语言范围规则

    有三个地方变量可以在Go编程语言声明如下: 内部函数或这就是所谓的局部变量块 所有函数的外面的变量称为全局变量 在这被称为形式参数函数的参数的定义 让我们来解释一下什么是局部和全局变量和形式参数。

    1.1K110发布于 2018-03-20
  • 来自专栏Golang语言社区

    Go 语言社区】Go语言类型转换

    类型转换是一种可变从一种数据类型转换成另一种数据类型。例如,如果要存储一个long值转成一个简单的整数,那么可以强制类型转换long为int。可以从一种类型使用转换运算符将原类型值转换为另一种类型值,如下: type_name(expression) 例子 请看下面的例子中,产生浮点数运算执行一个整型变量除以另一个数的转换。 package main import "fmt" func main() { var sum int = 17 var count int = 5 var mean float

    1.4K140发布于 2018-03-20
  • 来自专栏Golang语言社区

    Go 语言社区】Go 语言函数--转

    Go 语言函数 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数字,则返回数组中包含的函数个数。 ---- 函数定义 Go 语言函数定义格式如下: func function_name( [parameter list] ) [return_types] { 函数体 } 函数定义解析: func:函数由 num1 } else { result = num2 } return result } 以上实例在 main() 函数中调用 max()函数,执行结果为: 最大值是 : 200 函数返回多个值 Go 默认情况下,Go 语言使用的是值传递,即在调用过程中不会影响到实际参数。

    1.6K80发布于 2018-03-20
领券