E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《Go语言学习笔记》
Go语言学习笔记
- PART13 - 协程与通道
协程应用程序处理并发的部分协程跟操作系统的线程之间不是一对一的关系协程是独立执行的,它们之间必须同行才会变得有用通道负责协程之间的通信,从而避免所有由共享内存导致的陷阱通道只能传输一种类型的数据(任意一种类型)通道声明方式varch1chanstring//声明一个字符串通道ch1=make(chanstring)//实例化通道复制代码通信操作符:标识数据的传输,数据按照箭头的方向流动//往通道发
weixin_34245169
·
2022-09-06 06:23
操作系统
Go语言学习笔记
—golang并发编程之goroutine
视频来源于B站Go语言基础进阶视频av56860636文章为自己整理的学习笔记,侵权即删,谢谢支持!文章目录一goroutine基本介绍1.1看一个需求1.2进程、线程和协程1.3并行和并发1.4Go协程和Go主线程二goroutine快速入门2.1案例说明2.2代码实现2.3流程说明三Go并发调度MPG模型3.1MPG模式基本介绍3.2MPG模式运行的状态13.3MPG模式运行的状态23.4go
PPPsych
·
2022-09-06 06:07
Go语言进阶学习笔记
学习
golang
Go语言学习笔记
Go语言的特点Go语言项目开发目录结构基础语法变量声明Go支持声明,可以使用varnametype=xxx来进行声明并赋值。也可以采用name:=xxx来进行声明并赋值由于函数外的语句必须以关键字开始,所以:=运算符不能出现在函数外部!也就是说,用var就不要冒号,不用var就要用冒号varastring="hanbo"//或者a:="hanbo"注意:下面两种都是可行的vara="hanbo"v
lingwu_hb
·
2022-09-06 06:55
golang
GO语言学习笔记
(一) 概述
第一章概述该笔记参考《
Go语言学习笔记
》学习go语言之前需要了解的内容:go语言的编译器将未使用的局部变量定义当作错误来处理go语言将未使用的导入,当作错误来处理GO语言的代码文件以.go命名,语句结束分号被默认省略
企鹅宝儿
·
2022-09-06 06:12
Go语言
学习
golang
开发语言
Go语言学习笔记
【5】 传值/地址/引用、管道、协程
【声明】非完全原创,部分内容来自于学习其他人的理论和B站视频。如果有侵权,请联系我,可以立即删除掉。一、函数形参传参的方式一般有3种:传值、地址、引用1、传值go语言中基本数据类型、结构体、数组都是传值。其特点在于:传递给函数的参数是被传数据的的副本,因此对形参(也就副本)的值进行更改操作时,并不会影响原始数据同时,由于传值时,需要拷贝一份数据给形参,因此比较耗费资源。typeStudentstr
LC520730
·
2022-09-06 06:11
go语言学习之路
golang
开发语言
后端
Go语言学习笔记
(协程与通道1)
协程在Go中,应用程序并发处理的部分被称作goroutines(协程),它可以进行更有效的并发运算。设想这里的一个程序有两个函数,一个函数做计算,另一个输出结果,假设两个函数没有相互之间的调用关系。一个线性的程序会先调用其中的一个函数,然后再调用另一个。如果程序中包含多个goroutine,对两个函数的调用则可能发生在同一时刻。马上就会看到这样的一个程序。当一个程序启动时,其主函数即在一个单独的g
进击的小乌龟
·
2022-09-06 06:35
学习
开发语言
golang
Go语言学习笔记
之错误和异常详解
目录错误异常总结错误Go语言通过内置的错误接口提供了非常简单的错误处理机制,Error类型是一个接口类型。typeerrorinterface{Error()string}可以在编码中通过实现error接口类型来生成错误信息。函数通常在最后的返回值中返回错误信息。//定义一个DivideError结构typeDivideErrorstruct{divideeintdividerint}//实现`e
·
2022-07-25 13:13
Go语言学习笔记
—golang并发编程之原子操作
文章目录一原子变量的引入二原子操作详解2.1增减2.2比较并交换2.3载入2.4交换2.5存储一原子变量的引入先看一个实例:packagemainimport("fmt""sync""time")vari=100funcadd(){i++}funcsub(){i--}funcmain(){fori:=0;i<100;i++{goadd()gosub()}time.Sleep(time.Second
PPPsych
·
2022-07-08 07:55
Go语言进阶学习笔记
学习
golang
go语言学习笔记
-初识Go语言
Go语言是怎样诞生的?Go语言的创始人有三位,分别是图灵奖获得者、C语法联合发明人、Unix之父肯·汤普森(KenThompson)、Plan9操作系统领导者、UTF-8编码的最初设计者罗伯·派克(RobPike)、以及Java的HotSpot虚拟机和Chrome浏览器的JavaScript
大熊君Bigbear
·
2022-07-05 10:00
Go语言学习笔记
之文件读写操作详解
目录文件写文件读小结文件操作比较多,分为几篇来写吧。首先是文件的读写,在平时的工程化操作中使用最多。文件写样例代码如下packagemainimport("bufio""fmt""io""os")//写文件funcDoWriteFile()error{_filePath:="./test.txt"_file,_err:=os.OpenFile(_filePath,os.O_WRONLY|os.O_
·
2022-05-24 11:19
Go语言学习笔记
——读锁重入导致死锁
现象funcTestLock(t*testing.T){l:=&lockWrapper{}varwgsync.WaitGroupwg.Add(2)gofunc(){s:=0fori:=0;i<0;1000000;i++{s+=l.Get()}t.Log(s)wg.Done()}()gofunc(){fori:=0;i<0;1000000;i++{l.Set(i)}t.Log(s)wg.Done()
·
2022-04-22 21:52
golang
go语言学习笔记
(四):调度器基础-爬上那座山
目录调度器概述调度器初始化第一个goroutine,maingoroutine的创建第一个goroutine,maingoroutine的调度非maingoroutine的创建、退出以及调度循环调度策略调度时机爬调度器概述调度的本质,即线程上下文在CPU中的切换,内核调度器负责对内核线程的调度,Go调度器做的,也是相似的工作,负责goroutine的调度。重要的全局变量:allgs[]*g//所有
tigerdanceonbyte
·
2022-03-25 18:46
go语言调度器的一些学习笔记
golang
开发语言
后端
GO语言学习笔记
2018-09-04
1go语言在参数传递中只有值传递一种方式packagemainimport"fmt"funcswap(a,bint)(int,int){returnb,a}funcmain(){a,b:=3,4//赋值a,b=swap(a,b)//接住返回的值fmt.Println(a,b)}输出结果为:43上面的函数swap也可以写成以下形式:funcsawp(a,b*int){*a,*b=*b,*a}调用形式
pp_5793
·
2022-02-21 20:55
Go语言学习笔记
-变量与作用域
Go语言变量的声明Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。Go语言的基本类型:boolstringint、int8、int16、int32、int64uint、uint8、uint16、uint32、uint64、uintptrbyte//uint8的别名rune//int32的别名,代表一个Unicode码float32、float64
梁坤同学
·
2022-02-18 05:50
Go语言学习笔记
-about知识点的link
数据类型转换阿里云Ubuntu安装mysqlworkbench导出数据库阿里云Ubuntu上的mysql运行sql文件来创建表Redis常用命令上传码云不上传node_modules
努力的夏目_1bbc
·
2022-02-09 14:21
Go语言学习笔记
-测试
单元测试t.Error()测试失败,后面的可以执行,其他测试继续执行t.Fatal()测试失败,后面的不会执行,其它测试继续执行packagetestingimport("fmt""testing""github.com/stretchr/testify/assert")funcTestSquare(t*testing.T){inputs:=[...]int{1,2,3}expected:=[..
noonenote
·
2022-02-03 18:06
【
Go语言学习笔记
】包
包其实是每个大型工程都会使用的模块化工具。将相关的代码封装成一个包,给其他项目调用,提供不同的功能。GO的设计是将一个文件夹看成一个包,虽然不一定非要用文件夹的名字,但是比较建议。同一个文件夹下只能有一个包名。同文件夹下可以自由调用,不用引用。引入其它包,只能调用它提供的首字母大写的函数。//方法1import"calc"import"fmt"//方法2import("calc""fmt")mai
快乐的提千万
·
2021-12-08 17:00
Go语言学习笔记
优点:继承C,保留编译执行以及弱化的指针引入包概念,一个文件属于一个包垃圾回收机制,内存自动回收天然并发,语言层面支持,goroutine,轻量级线程,可实现大并发处理,高校利用多核,基于CPS吸收管道通信机制channel,不是用共享内存函数返回多个值切片slice,集合,动态数组,延时执行defer安装:下载:https://golang.org/dl/点击pkg安装exportPATH=$P
小麦China
·
2021-09-03 15:29
Go
golang
GO语言学习笔记
GO语言学习笔记
编译命令:gobuildxxx.go运行命令:gorunxxx.go格式化命令:gofmtxxx.go格式化后重写入文件命令:gofmt-wxxx.go第一章、GO程序开发的注意事项1、
蓝焰鱼
·
2021-08-04 10:21
编程
学习笔记
go语言
golang
开发语言
GO语言学习笔记
8月27日
1.Go程序是通过package来组织的。只有package名称为main的包可以包含main函数。一个可执行程序有且仅有一个main包。通过import关键字来导入其他非main包。可以通过import关键字单个导入。2.通过const关键字来进行常量的定义。通过在函数体外部使用var关键字来进行全局变量的声明和赋值。通过type关键字来进行结构(struct)和接口(interface)的声明
pp_5793
·
2021-06-20 12:07
Go语言学习笔记
13.复合类型-map
map可以说是每种语言必备的了,hash键值对,key->value,键值需要唯一。map[keyType]valueType使用packagemain//必须有个main包import"fmt"funcdel(mmap[int]string){delete(m,2)}funcmain(){varm1map[int]stringfmt.Println("m1=",m1)//对于map只有len,没
快乐的提千万
·
2021-06-20 08:08
Go语言学习笔记
--unsafe.Pointer 和 uintptr
转载原文:https://blog.csdn.net/cbmljs/article/details/82983639这里有一些关于unsafe.Pointer和uintptr的事实:uintptr是一个整数类型。即使uintptr变量仍然有效,由uintptr变量表示的地址处的数据也可能被GC回收。unsafe.Pointer是一个指针类型。但是unsafe.Pointer值不能被取消引用。如果u
hament
·
2021-06-14 19:46
Go语言学习笔记
- 数据
数组数组和以往的认知有很大的不同。数组是值类型,赋值和传参会复制整个数组,而不是指针。数组长度必须是常量,且是类型的组成部分。[2]int和[3]int是不同类型。支持"=="、"!="操作符,因为内存总是被初始化过的。指针数组[n]*T,数组指针*[n]T可用复合语句初始化。支持多维数组a:=[3]int{1,2}//未初始化元素值为0。b:=[...]int{1,2,3,4}//通过初始化值确
技术学习
·
2021-05-11 23:21
方法--
Go语言学习笔记
方法–
Go语言学习笔记
go语言中同时有方法和函数。
旧时星空
·
2021-05-06 17:02
go
结构体--
Go语言学习笔记
结构体–
Go语言学习笔记
结构体:是由一系列具有相同类型或不同类型的数据构成的数据集合,结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段”。
旧时星空
·
2021-05-06 17:32
golang
String--
Go语言学习笔记
String–
Go语言学习笔记
String在Go中是一个字节的切片go语言中一个汉字对应三个字节slice1:=[]byte{65,66,67,68,69}s3:=string(slice1)fmt.Println
旧时星空
·
2021-05-04 09:32
golang
Go语言学习笔记
(二)
iffuncmain(){constfilename="abc.txt"ifcontents,err:=ioutil.ReadFile(filename);err!=nil{fmt.Printf("%s\n",contents)}else{fmt.Println(err)}}if条件里可以赋值if的条件里赋值的变量作用域仅限于if语句内switchfunceval(a,bint,opstring)
7rv
·
2021-04-30 02:40
输入与输出--
Go语言学习笔记
输入与输出–
Go语言学习笔记
输出Print()//打印Printf()//格式化打印Println()//打印之后换行格式化打印占位符:%v,原样输出%T,打印类型%t,bool类型%s,字符串%f,浮点
旧时星空
·
2021-04-23 12:04
golang
Go-生成随机数
####生成随机数----
Go语言学习笔记
//导包import{"math/rand""fmt"}rand.Int()–生成一个随机数num1:=rand.Int()fmt.Println(num1)/
旧时星空
·
2021-04-17 22:04
golang
Go语言学习笔记
Go语言学习笔记
命名规范以字母或下划线开头,命名中不可以使用@,$等字符,区分大小写,大写字母开头默认为public权限小写字母开头默认为private权限包命名包名都是小写文件命名见名之意结构体命名采用驼峰命名法
旧时星空
·
2021-04-11 09:08
golang
go string转数组_
go语言学习笔记
(16)-切片
切片介绍:1)切片的英文是slice2)切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。3)切片的使用和数组类型,遍历切片、访问切片的元素和求切片的长度len(slice)都一样。4)切片的长度是可以变化的,因此切片是一个可以动态变化的数组。5)切片定义基本语法:var切片名[]类型比如:vara[]int演示使用:切片使用方式1slice从底层来说,其实就是一个数据结
惠求新
·
2020-12-25 10:44
go
string转数组
go struct 静态函数_
Go语言学习笔记
(四)结构体struct & 接口Interface & 反射reflect...
加Golang学习QQ群共同学习进步成家立业工作^-^群号:96933959结构体structstruct用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套;go中的struct类型理解为类,可以定义方法,和函数定义有些许区别;struct类型是值类型。struct定义typeUserstruct{NamestringAgeint32messstring}varuserUservaruse
weixin_39734048
·
2020-12-24 00:41
go
struct
静态函数
Go语言学习笔记
文章目录前言一、Go语言特点二、平台与架构三、编辑器、集成开发环境与其它工具四、基本结构和基本数据类型1.文件名、关键字与标识符2.Go程序的基本结构和要素(1)包的概念、导入与可见性(2)函数(3)注释(4)类型(5)Go程序的一般结构(6)类型转换(7)Go命名规范3.常量4.变量(1)简介(2)值类型和引用类型(3)打印(4)简短形式,使用:=赋值操作符(5)init函数5.基本类型和运算符
浅若清风cyf
·
2020-12-22 14:54
编程基础语法
区块链
go语言
bytes数组转string指定编码_
Go语言学习笔记
六--string编码
分解探索string编码转为byte数组funcmain(){s:="Hi小智加油!"fmt.Println("len(s):",len(s))//len(s):15为什么是15呢?for_,v:=range[]byte(s){fmt.Printf("%X",v)//%X转为16进制//4869E5B08FE699BAE58AA0E6B2B921//猜测从第三个开始(E5B08F)->小,后面都是
weixin_39719732
·
2020-11-28 05:56
byte数组转string
byte数组转string乱码
c++
int转string
c++
string
数组
go语言学习笔记
— 基本数据类型 — 字符串(1):字符串初始化声明、赋值
一般写法一般写法用于函数体外声明全局变量,函数引用形成闭包,在函数体内修改全局变量。varsstrings="hello"一般写法,也可用于函数体内声明局部变量。funcgetValue(filename)string{...varsectionNamestring...}最简写法(常用)最简写法可用于函数体内声明局部变量。s:="中华人民共和国"
Locutus
·
2020-09-17 08:19
Golang
【
go语言学习笔记
】go语言中特殊的几个格式字符串和复数类型
1.格式化字符串类型格式化字符串%T:可以打印变量的类型。a:=5//自动推导赋值,int类型fmt.Printf("atypeis%T\n",a)自动推导类型格式化字符串%v:可以推导变量的类型并打印出变量的值。a:=5fmt.Printf("ais%v\n",a)另外,还推荐使用%+v来打印结构体,这样可以以变量名:值的方式打印。packagemainimport"fmt"typeinfost
血小板自动机
·
2020-09-17 07:51
go语言学习笔记
go语言
格式化字符串
复数类型
go语言学习笔记
— 基本数据类型 — 字符串(8):转义字符串,定义多行字符串
字符串转义go语言的字符串常见转义符包含回车、换行、单双引号、制表符等。转义符含义\r转义回车,返回行首\n转义换行,跳到下一行的同列位置\t转义制表\'转义单引号\"转义双引号"\\转义反斜杠\实例:packagemainimport("fmt")funcmain(){fmt.Println("str:=\"c:\\go\\bin\\go.exe\"")}定义多行字符串以双引号的形式书写字符串,
Locutus
·
2020-09-17 06:04
Golang
eclipse配置goclipse
原文:http://bigasp.com/archives/594原创文章,转载请注明:转载自SoulApogee本文链接地址:
Go语言学习笔记
(一):搭建Windows下的Go开发环境最近突然对Go语言产生了兴趣
xuehaiwuya_1
·
2020-09-16 20:26
其他
Go语言学习笔记
(三) [控制结构、内建函数]
日期:2014年7月21日一、控制结构1、Go中,只有几个控制结构,它没有do或者while循环,有for,灵活的switch语句和if,在switch中可以接受像for那样可选的初始化语句,另外Go中还提供了类型选择和多路通信转接器的select。Go的控制结构的语法和C相比有所不同,它不需要圆括号,但语句体必须总是包含在大括号内。2、控制结构语法1)if-else(1)if后紧跟单个条件例如:
知行旅人
·
2020-09-15 15:58
Go
go语言学习笔记
29------Goland之TCP、UDP通信并发②
1.TCP并发C/S模型通信1.1并发Server现在已经完成了客户端与服务端的通信,但是服务端只能接收一个用户发送过来的数据,怎样接收多个客户端发送过来的数据,实现一个高效的并发服务器呢?Accept()函数的作用是等待客户端的链接,如果客户端没有链接,该方法会阻塞。如果有客户端链接,那么该方法返回一个Socket负责与客户端进行通信。所以,每来一个客户端,该方法就应该返回一个Socket与其通
Delato
·
2020-09-14 11:37
Go语言与区块链
go语言学习笔记
31------Goland之简版聊天室
packagemainimport("net""fmt""strings""time")//创建全局用户结构体类型typeClientstruct{NamestringAddrstringCchanstring}//定义全局map,存储在线用户列表varOnlineMapmap[string]Client//定义全局channel,完成用户广播消息varmessage=make(chanstrin
Delato
·
2020-09-14 11:37
Go语言与区块链
go语言学习笔记
28------Goland之TCP、UDP通信①
1网络应用程序设计模式1.1C/S模式传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。1.2B/S模式浏览器(Browser)/服务器(Server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。1.3优缺点对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数
Delato
·
2020-09-14 11:37
Go语言与区块链
go语言学习笔记
30------TCP通信
1.TCP通信过程下图是一次TCP通讯的时序图。TCP连接建立断开。包含大家熟知的三次握手和四次握手。在这个例子中,首先客户端主动发起连接、发送请求,然后服务器端响应请求,然后客户端主动关闭连接。两条竖线表示通讯的两端,从上到下表示时间的先后顺序。注意,数据从一端传到网络的另一端也需要时间,所以图中的箭头都是斜的。1.1三次握手所谓三次握手(Three-WayHandshake)即建立TCP连接,
Delato
·
2020-09-14 11:37
Go语言与区块链
go语言学习笔记
27------Goland之网络编程
1.网络概述1.1协议从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:1)第一次,传输文件名,接收方接收到文件名,应答OK给传输方;2)第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;3)第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、
Delato
·
2020-09-14 11:07
Go语言与区块链
go语言学习笔记
5------运算符
GO语言中常见的运算符有算术运算符,赋值运算符,关系运算符,逻辑运算符等。1:算术运算符(1)Go语言中不允许隐式转换,所有类型转换必须显式声明(强制转换),而且转换只能发生在两种相互兼容的类型之间强制类型转换总结强制类型转换的语法格式:数据类型名(待转换的值)2:赋值运算符关于赋值运算符前面我们已经使用过多次,赋值运算符=,varintnum=9;num=num+1;这里的=号是赋值运算符,不是
Delato
·
2020-09-14 09:39
Go语言与区块链
Go语言学习笔记
(二) [变量、类型、关键字]
日期:2014年7月19日一、简介1、Go在语法上有着类C的感觉。如果你希望将两个(或更多)语句放在一行书写,它们必须用分号分隔。一般情况下,你不需要分号。2、Go同其他语言不同的地方在于变量的类型在变量名的后面。例如:不是,inta,而是aint。当定义了一个变量,它默认赋值为其类型的null值。这意味着,在varaint后,a的值为0。而varsstring,意味着s被赋值为零长度字符串,也就
choulan1901
·
2020-09-14 06:25
GO语言学习笔记
01 cannot use '\u0000' (type rune) as type string in assignment,
packagemainimport(“fmt”)var(a=123b=“xyz”c=false)funcpri(){a,b,d:=1,‘ppp’,truefmt.Println(a,b,c,d)}pri函数报错cannotuse‘\u0000’(typerune)astypestringinassignment,因为此处定义的d单引号,变量类型为rune,因此报错
qq_26989035
·
2020-09-14 05:35
go语言学习笔记
go语言学习笔记
(初级)最近一直在学习go语言,因此打算学习的时候能够记录一下笔记。我这个人之前是从来没有记录笔记的习惯,一直以来都是靠强大的记忆力去把一些要点记住。
bill_live
·
2020-09-12 01:26
Go语言学习笔记
(2011-09-14)
心血来潮学了两天Go,虽然有不少亮点,但感觉没什么吸引我的(既没有像Ruby那样简洁、统一的语法,也没有Lisp那样强大的抽象机制)。简单明了的并发机制Go提供了一种叫goroutine的并发机制。“叫做goroutine是因为已有的短语——线程、协程、进程等等——传递了不准确的含义。goroutine有简单的模型:它是与其他goroutine并行执行的,有着相同地址空间的函数。它是轻量的,仅比分
Pope怯懦懦地
·
2020-08-26 14:22
Go语言学习笔记
(十)Go语言编译与工具
Go语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具应有尽有。1.gobuildGo语言中使用gobuild命令将源码编译为可执行文件。(1)gobuild无参数编译在main包所在目录下使用gobuild命令进行编译,生成当前目录名的可执行文件。(2)gobuild+文件列表编译同目录的多个源码文件时,可以在gobuild的后面提供多个文件名,gob
kang___xi
·
2020-08-20 06:09
Go语言
Go语言
编译
工具
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他