-
Go语言切片
所属栏目:[大数据] 日期:2020-12-16 热度:184
p class="toc"目录 在上一篇文章中已经了解了数组,数组有特定的用处,但是却有一些呆板(数组长度固定不可变),所以在 Go 语言的代码里并不是特别常见。接下来聊聊切片(slice),相对的,切片却是随处可见的,Go语言切片是一种建立在数组类型之上的抽象,它构[详细]
-
Go语言map
所属栏目:[大数据] 日期:2020-12-16 热度:129
map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的value 可以迅速定位。 Map是给予散列表来实现,就是我们常说的[详细]
-
Go语言数组
所属栏目:[大数据] 日期:2020-12-16 热度:97
p class="toc"目录 数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度必须是一个常量表达式,并且必须是一个非负整数,数组下标是[详细]
-
Go语言strings和strconv包
所属栏目:[大数据] 日期:2020-12-16 热度:154
p class="toc"目录 HasPrefix 判断字符串 s 是否以 prefix 开头: strings.HaxPrefix(s string,prefix string) bool 示例: package main import ( "fmt" "strings" ) func main() { pre := "Thi"str1 := "This is a Go program!"fmt.Println(strings.HasPrefi[详细]
-
计算函数执行时间
所属栏目:[大数据] 日期:2020-12-16 热度:119
在开发的过程中,我们常常需要知道执行某一块代码需要消耗的时间,这有利于我们知道代码的执行效率一遍对其进行优化,我们一般就是在计算开始前设置一个起始时间,再在该块代码执行结束的地方设置一个结束时间,结束时间与开始时间的差值就是该快代码执行所[详细]
-
Go语言函数
所属栏目:[大数据] 日期:2020-12-16 热度:165
p class="toc"目录 为完成某一功能的程序指令(语句)的集合,称为函数。 函数一般分为两类:系统函数、自定义函数。 Go语言函数定义格式如下: func function_name ([parameter list]) [return_types] { //函数体} 函数定义解析: func:函数由 func 开始声明 f[详细]
-
Go语言生成随机数
所属栏目:[大数据] 日期:2020-12-16 热度:184
在Go语言中生成随机数需要使用 Seed(value) 函数来提供伪随机数生成种子,一般情况下都会使用当前时间的纳秒数字,如果不在生成随机数之前调用该函数,那么每次生成的随机数都是一样的。函数 rand.Float32 和 rand.Float64 返回介于[0.0,1.0)之间的伪随机数[详细]
-
Go语言流程控制
所属栏目:[大数据] 日期:2020-12-16 热度:130
p class="toc"目录 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。 顺序控制 分支控制 循环控制 程序从上到下逐行的执行,中间没有任何判断和跳转。 让程序有选择的执行,分支控制有三种: (1)单分支 if 条[详细]
-
Go语言常量
所属栏目:[大数据] 日期:2020-12-16 热度:130
常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串型 。 常量的定义格式: //const 常量名 类型 值const identifier [type] = value 可以省略类型说明符[type],因为编译器可以[详细]
-
Go语言运算符
所属栏目:[大数据] 日期:2020-12-16 热度:78
p class="toc"目录 运算符用于在程序运行时执行数学或逻辑运算。 Go 语言内置的运算符有: 算术运算符 、 赋值运算符 、 逻辑运算符 、 关系运算符 、 位运算符 、 其他运算符 算数运算符是对数值型的变量进行运算的,比如:加减乘除,在Go程序中使用的非常多[详细]
-
Go语言变量
所属栏目:[大数据] 日期:2020-12-16 热度:171
p class="toc"目录 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。--百度百科 变量相当于内存中一个数据存储空间的表示,你可以把变量看作是房屋的门牌号,通过门牌号我们可以找到房间,同样,通过变量名可以访[详细]
-
Go语言数据类型
所属栏目:[大数据] 日期:2020-12-16 热度:136
p class="toc"目录 Go 语言是一种静态类型的编程语言,在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。编译器在进行编译的时候[详细]
-
Go语言执行流程
所属栏目:[大数据] 日期:2020-12-16 热度:74
h2 id="go执行流程"Go执行流程 如果是对源代码编译后,再执行,Go的执行流程如下图 go build生成的可执行文件会在当前目录内 如果是对源代码直接执行go run 源文件操作,Go的执行流程如下图 两种执行流程的方式说明 如果我们先编译生成了可执行文件,我们可[详细]
-
golang环境搭建
所属栏目:[大数据] 日期:2020-12-16 热度:59
p class="toc"目录 学习一门编程语言总是从搭建这门语言的开发环境开始,作为一名以PHP为主要开发语言的后端开发者,我也一直想学习一门静态类型的编程语言,在了解了一些静态类型语言的特性后,最终我决定学习 golang ,因为我也相信 这是一门属于未来的语[详细]
-
GOPATH
所属栏目:[大数据] 日期:2020-12-16 热度:66
p class="toc"目录 工作目录就是我们用来存放开发的源代码的地方,对应的就是Go里的GOPATH这个环境变量。这个环境变量指定之后,我们编译源代码等生成的文件都会放到这个目录下,GOPATH环境变量的配置参考,配置到 /etc/profile 或者Windows下的系统变量里。[详细]
-
[日常] 算法-单链表的创建
所属栏目:[大数据] 日期:2020-12-16 热度:129
1. 先创建一个头结点,不需要有数据域,头结点的next指向null 2.循环中创建结点,把头结点的next赋值给 新结点的next,相当于新结点的next指向了(头结点next所指向的) 3.把新结点赋值给头结点的next ,相当于头结点的next指向了新结点,这样就串起来了 4.[详细]
-
[日常] 算法-单链表的创建-尾插法
所属栏目:[大数据] 日期:2020-12-16 热度:145
1.创建头结点,头结点的next指向null 2.把头结点赋值给一个中间变量 3.循环中创建结点,中间变量的next指向新结点 4.新结点覆盖中间变量 c语言版: #include typedef struct Node{ char data; struct Node next; } Node; typedef Node LinkList; int main(){ //[详细]
-
[日常] Go-逐行读取文本信息
所属栏目:[大数据] 日期:2020-12-16 热度:114
go逐行读取文本信息:1.os包提供了操作系统函数的不依赖平台的接口,Open方法打开一个文件用于读取,func Open(name string) (file *File,err error)2.bufio包实现了有缓冲的I/O,NewReader方法创建一个具有默认大小缓冲、从r读取的*Reader,func NewReader(rd io[详细]
-
[Go] 使用go语言解决现代编程难题
所属栏目:[大数据] 日期:2020-12-16 热度:67
1.计算机一直在演化,64核,128核等等,但是我们依旧在使用为单核设计的技术编程2.Go语言让分享自己的代码包更容易3.Go语言重新思考传统的面向对象,提供了更高效的复用代码手段4.Go不仅提供高性能而且开发更快速5.Go语法简洁,编译速度快,内置并发,自带垃圾回收[详细]
-
[日常] Go语言圣经-示例: 并发的目录遍历习题
所属栏目:[大数据] 日期:2020-12-16 热度:126
练习 8.9: 编写一个du工具,每隔一段时间将root目录下的目录大小计算并显示出来。 import ( // "filepath" "flag" "fmt" "io/ioutil" "os" "path" "sync" "time" ) / 练习 8.9: 编写一个du工具,每隔一段时间将root目录下的目录大小计算并显示出来。 / //[详细]
-
[日常] Go语言圣经-竞争条件习题
所属栏目:[大数据] 日期:2020-12-16 热度:77
div class="cnblogs_Highlighter" pre class="brush:go;gutter:true;"package main import( "fmt" "sync" ) var balance int func Deposit(amount int) { balance = balance + amount } func Balance() int { return balance } / 问题: 1.在Alice运行期间 ba[详细]
-
[日常] Go语言圣经-并发的非阻塞缓存
所属栏目:[大数据] 日期:2020-12-16 热度:97
1.go test命令是一个按照约定和组织进行测试的程序2.竞争检查器 go run -race 附带一个运行期对共享变量访问工具的test,出现WARNING: DATA RACE 说明有数据竞争3.理想情况下是应该避免掉多余的工作的,称为duplicate suppression(重复抑制/避免) 4.设计并发,[详细]
-
[日常] Go语言圣经-Goroutines和线程
所属栏目:[大数据] 日期:2020-12-16 热度:139
Goroutines和线程: 1.动态栈: 1)线程都有一个固定大小的内存块(一般会是2MB)来做栈 2)一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB,不是固定的;栈的大小会根据需要动态地伸缩 2.Goroutine调度: 1)线程是使用硬件定时器进行的调度,速度慢 2)[详细]
-
[日常] Go语言圣经-字节切片与字符串
所属栏目:[大数据] 日期:2020-12-16 热度:149
1.一个字符串是一个不可改变的字节序列2.文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列3.内置的len函数可以返回一个字符串中的字节数目4.第i个字节并不一定是字符串的第i个字符,因为对于非ASCII字符的UTF8编码会要两个或多个字节5.字符串操[详细]
-
[日常] Go语言圣经--示例: 并发的Echo服务
所属栏目:[大数据] 日期:2020-12-16 热度:123
最简单的回声服务器: import ( "io" "net" "log" ) func main() { listener,err := net.Listen("tcp",":8040") if err != nil { log.Fatal(err) } for { conn,err := listener.Accept() if err != nil { log.Print(err) // e.g.,connection aborted continu[详细]
