Golang
文章平均质量分 73
东方雨倾
做一个积极主动的人,积极做事,主动学习。
展开
-
初学Golang的N个小技巧
初学Golang的N个小技巧原创 2022-06-09 00:35:18 · 492 阅读 · 1 评论 -
10. 并发
有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而GO从语言层面就支持了并行。goroutinegoroutine是Go并行设计的核心。goroutine说到底其实就是线程,但是他比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比原创 2021-09-21 11:09:33 · 182 阅读 · 0 评论 -
9. interface
什么是interface简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为。我们前面一章最后一个例子中Student和Employee都能Sayhi,虽然他们的内部实现不一样,但是那不重要,重要的是 他们都能say hi让我们来继续做更多的扩展,Student和Employee实现另一个方法Sing,然后Student实现方法BorrowMoney而Employee实现SpendSalary。这样Student实现了三个方法:Sayhi、Sing、B原创 2021-09-21 11:09:02 · 1497 阅读 · 0 评论 -
8. 面向对象
前面我们介绍了函数和struct,那你是否想过函数当作struct的字段一样来处理呢?今天我们就讲解一下函数的 另一种形态,带有接收者的函数,我们称为methodmethod现在假设有这么一个场景,你定义了一个struct叫做长方形,你现在想要计算他的面积,那么按照我们一般的思路应该会用下面的方式来实现package main import "fmt" type Rectangle struct { width, height float64 }func area(r Rectangl原创 2021-09-21 11:08:11 · 150 阅读 · 0 评论 -
7. struct类型
structGo语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型 person 代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:type person struct { name string age int}看到了吗?声明一个struct如此简单,上面的类型包含有两个字段一个string类型的字段name,用来保存用户名称这个属性一个int类型的字段age,用原创 2021-09-21 11:07:34 · 491 阅读 · 0 评论 -
6. Go语言之函数
函数是Go里面的核心设计,它通过关键字 func 来声明,它的格式如下:func funcName(input1 type1, input2 type2) (output1 type1, output2 type2) { // 这里是处理逻辑代码 // 返回多个值 return value1, value2}上面的代码我们看出关键字 func 用来声明一个函数 funcName函数可以有一个或者多个参数,每个参数后面带有类型,通过 , 分隔函数可以返回多个值上面返回原创 2021-08-31 22:59:45 · 177 阅读 · 0 评论 -
5. Go语言之流程控制
流程控制包含分三大类:条件判断,循环控制和无条件跳转。ifif 也许是各种编程语言中最常见的了,它的语法概括起来就是:如果满足条件就做某事,否则做另一件事。Go里面 if 条件判断语句中不需要括号,如下代码所示if x > 10 { fmt.Println("x is greater than 10")} else { fmt.Println("x is less than 10")}Go的 if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条原创 2021-08-31 22:59:12 · 159 阅读 · 0 评论 -
4. Go语言之array、slice、map
arrayarray 就是数组,它的定义方式如下:var arr [n]type在 [n]type 中, n 表示数组的长度, type 表示存储元素的类型。对数组的操作和其它语言类似,都是通过 [] 来进行读取或赋值:var arr [10]int // 声明了一个 int 类型的数组arr[0] = 42 // 数组下标是从 0 开始的arr[1] = 13 // 赋值操作fmt.Printf("The first element is %d\n", arr[0]) // 获取数原创 2021-08-29 21:41:04 · 369 阅读 · 0 评论 -
3. Go语言一些技巧
分组声明在Go语言中,同时声明多个常量、变量,或者导入多个包时,可采用分组的方式进行声明。例如下面的代码:import "fmt"import "os"const i = 100const pi = 3.1415const prefix = "Go_"var i intvar pi float32var prefix string可以分组写成如下形式:import( "fmt" "os")const( i = 100 pi = 3.1415原创 2021-08-29 21:39:35 · 158 阅读 · 0 评论 -
2. Go语言内置基础类型
布尔类型在Go中,布尔值的类型为 bool ,值是 true 或 false ,默认为 false 。// 示例代码var isActive bool // 全局变量声明var enabled, disabled = true, false // 忽略类型的声明func test() { var available bool // 一般声明 valid := false // 简短声明 available = true // 赋值操作}数值类型整数类型有无原创 2021-08-29 21:38:35 · 195 阅读 · 0 评论 -
1. Go语言变量定义及常量
变量定义Go语言里面定义变量有多种方式。使用 var 关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型放在变量名后面:// 定义一个名称为 “variableName” ,类型为 "type" 的变量var variableName type定义多个变量// 定义三个类型都是 “type” 的三个变量var vname1, vname2, vname3 type定义变量并初始化值// 初始化 “variableName” 的变量为 “value” 值,类型是 “type原创 2021-08-29 21:37:10 · 667 阅读 · 0 评论
分享