随笔分类 - Go语言
1
摘要:简介 Tag可选的字段: "-" :不要解析这个字段 "omitempty":当字段为空(默认值)时,不要解析这个字段;比如是false、0、nil或者长度为0的array、map、slice、string等 FieldName:当解析json、xml、ini等的时候 用这个名字 YAML配置文件和
阅读全文
摘要:创建表结构 package main import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) type User struct { gorm.Model Name string Credi
阅读全文
摘要:函数可以分为:匿名函数和普通函数 匿名函数的使用: 匿名函数就是没有名字的函数,它只有函数逻辑体,而没有函数名 定义的格式如下 func(参数列表)(返回参数列表){ 函数体 } 一个名字实际上没多大区别,所有使用匿名函数都可以改成普通函数,那么什么情况下会使用匿名函数呢 定义变量名,是一个不难,但
阅读全文
摘要:什么是空接口? 空接口是特殊形式的接口类型,普通接口都有方法,而空接口没有定义任何方法 type empty_iface interface { } 每一个接口都包含两个属性,一个是值,一个是类型 而对于空接口来说,这两者都是nil,可以使用fmt验证一下 package main import (
阅读全文
摘要:我们之前学习了协程和信道,里面有很多例子,当时为了保证main goroutine在所有的goroutine都执行完毕后在退出,我们使用了time.Sleep这种方式 由于写的demo都是很简单的,sleep个1秒,我们感觉应该是够用的 但是在实际开发中,我们无法预知,所有的goroutine需要多
阅读全文
摘要:前言 goroutine是go语言程序的并发执行的基本单元,多个goroutine的通信是需要依赖channel,叫做信道 1.信道的定义与使用 每个信道只能传递一种数据类型的数据,所以声明信道的时候,需要指定数据类型(string、int等) 信道实例 := make(chan 信道类型) 假如我
阅读全文
摘要:介绍 说到Go语言,很多没接触过它的人,对它的第一印象,一定是它从语言层面天生支持并发,非常方便,让开发者能快速写出高性能且易于理解的程序。 在 Python (为Py为例,主要是我比较熟悉,其他主流编程语言也类似)中,并发编程的门槛并不低,你要学习多进程,多线程,还要掌握各种支持并发的库 asyn
阅读全文
摘要:1.new函数 在官方文档中,new函数的描述如下 // The new built-in function allocates memory. The first argument is a type, // not a value, and the value returned is a poi
阅读全文
摘要:Go里的流程控制如下: if - else条件语句 swich - case选择语句 for - range 循环语句 goto无条件跳转语句 defer延迟执行 1.延迟调用 defer的用法很简单,只要在后面跟一个函数的调用,就能实现将这个xxx函数的调用延迟到当前函数执行完后再执行 defer
阅读全文
摘要:方法 Golang中函数指的是一个封装的代码块,我们可以直接调用它,并返回结果; 而方法其实也是一种函数,只不过方法需要和某个对象绑定; 方法的定义 /* 定义结构体 */ type struct_name struct { /* variables */ } /* 定义方法 */ func (st
阅读全文
摘要:for循环中最常用的就是 range Go语言的range类似迭代器操作,返回(索引、值)或者(Key、Values) for循环的range可以对slice、map、数组、字符串等进行迭代循环 for range循环数组 会循环打印出 数组的下标 和 值 func main() { arr :=
阅读全文
摘要:结构体简介 介绍: Go语言中的基础数据类型可以表示一些事务的基本属性,但是我们想表达一个事务的全部或部分属性时(比如一个人,她的姓名、年龄、爱好等属性),就无法满足需求了,Go语言为我们提供了一种自定义数据类型,可以封装多个基本数据类型,叫结构体,也就是struct 结构体相当于python里给类
阅读全文
摘要:Map定义 Map创建 map[KeyType]ValueType //KeyType代表 key的类型,例如string,int等 //ValueType代表values的类型,例如string,int等 使用make函数创建map,map类型的变量初始值是nil,需要使用make()函数来分配内
阅读全文
摘要:值传递与引用传递的解释 上面提到了,当我们调用一个有参函数的时候,会把实际参数传递给形式参数。但是,在程序语言中,这个传递过程中传递的两种情况,即值传递和引用传递。我们来看下程序语言中是如何定义和区分值传递和引用传递的。 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函
阅读全文
摘要:切片的简介 概念 切片是一个引用类型,可以创建"字符串"切片,可以创建"整型"切片等 切片和数组的区别( !!!!重点) 切片和数组相似,它们都是保存相同数组类型元素的容器,但是切片的元素个数是可变的, 数组不可变 切片不需要明确指定元素的个数 创建切片方法 var s []int //创建int类
阅读全文
摘要:多维数组适合场景: 适合管理具有父子关系或者与坐标系相关联的数据 声明多维数组的语法 var array_name [size1][size2]...[sizeN] arry_type#其中:array_name为数组的名字 size1、size2、sizeN等是数组每一个维度的 长度 array_
阅读全文
摘要:数组的介绍 数组是一个由“固定长度的", "特定类型元素"组成的序列,一个数组可以由一个或多个元素组成;因为数组的元素是固定的,所以在GO语言当中很少直接使用数组. 简单的数组 一、数组声明 数组声明语法: var 数组变量名 [元素数量]Type 数组变量名:数组声明及使用时的变量名 元素数量:数
阅读全文
摘要:(1)func len(v Type) int 返回长度,取决于具体类型;字符串返回字节数;channel返回缓存元素的个数; (2)func cap(v Type) int 返回容量,取决于具体类型;切片返回底层数组长度;channel返回缓存容量; (3)func append(slice []
阅读全文
摘要:一、基本类型介绍 类型 默认值说明 bool false byte 0 rune 0 int, uint 0 int8, uint8 0 int16, uint16 0 int32, uint32 0 int64, uint64 0 float32 0.0 浮点型 float64 0.0 浮点型 c
阅读全文
摘要:变量声明 一、标准声明 Go语言的声明格式为: var 变量名 变量类型 变量声明以var开头 var name string var age int var isOK bool 批量对变量进行声明 var ( name string age int isOK bool ) 二、变量初始化(给变量赋
阅读全文
1

浙公网安备 33010602011771号