Go语言中文网 为您找到相关结果 284

老虞学GoLang笔记-变量声明与初始化

变量声明 官方DOC: http://golang.org//spec#Variable_declarations Go中使用全新的关键字var来声明变量。var我们并不陌生,在Javascript 和C#中均有出现。不同的是Go和C#中变量属于强类型,在声明变量后就不允许改变其数据类型。 声明变量有多种形态: var a int //声明一个int类型的变量 var b struct { //声明一个结构体 name string } var a = 8 //声明变量的同时赋值,编译器自动推导其数据类型 var a int = 8 //声明变量的同时赋值 var { //批量声明变量,简洁 a int b string } 变量初始化 变量的初始化工作可以在声明变量时进行初始化,也可以先声...阅读全文

博文 2015-07-21 15:00:02 Gopher老虞

老虞学GoLang笔记-变量声明与初始化

变量声明 官方DOC: http://golang.org//spec#Variable_declarations Go中使用全新的关键字var来声明变量。var我们并不陌生,在Javascript 和C#中均有出现。不同的是Go和C#中变量属于强类型,在声明变量后就不允许改变其数据类型。 声明变量有多种形态: var a int //声明一个int类型的变量 var b struct { //声明一个结构体 name string } var a = 8 //声明变量的同时赋值,编译器自动推导其数据类型 var a int = 8 //声明变量的同时赋值 var { //批量声明变量,简洁 a int b string } 变量初始化 变量的初始化工作可以在声明变量时进行初始化,也可以先声...阅读全文

博文 2015-07-21 15:00:01 Gopher老虞

CUDA 及其 golang 调用 - 从入门到放弃 - 1.初见

环境: NVIDIA GeForce GTX 1050 cuda 10.2.89 windows visual studio 2017 windows SDK 10.0.14393.0 go 1.13.4 windows/amd64 我们在文件 lib.cu 中实现一个 GPU 计算的浮点数向量内积函数,以及一个 CPU 的入口函数进行数据传递和调用: __global__ void devDot(double *x, double *y, int n, double *r) { double res = 0.0; for (int i = 0; i < n; i++) { res += x[i] * y[i]; } *r = res; } extern "C" __declspec(dll...阅读全文

博文 2020-06-06 05:32:39 Platanuses

抽奖问题分析

普通抽奖问题 问题描述 用户随机抽奖,数据如下: // map中,key代表用户名,value代表成用户下单数 var users map[string]int64 = map[string]int64{ "a": 10, "b": 6, "c": 3, "d": 12, "f": 1, } 思路 随机问题,一般就是通过随机函数从某个范围内随机取出某个数值,则该数值对应的就是中奖用户 在这里,如果我们能给map中每个元素设置对应的索引,即转化为数组,是不是就可以解决问题了呢? 代码实现 func GetAwardUserName(users map[string]int64) (name string) { size := len(users) awardIndex := rand.Intn...阅读全文

博文 2017-09-05 08:34:52 tomorrowwu

浅析 Go 语言的数字常量

## 概述 Go 语言的常量的实现方法是 Go 的一个亮点。在 Go 的语言规范中的定义[常量规则](http://golang.org/ref/spec#Constants) 是 Go 独有的。 它们在编译器级别提供 Go 所需要的灵活性,使我们编写的代码可读且直观,同时仍保持类型安全。 本文将会探讨”什么是数字常量“、”它们在最简单的情况下时有怎样的行为“以及”怎样去探讨它们才是最好的“这几个方面,其中会有很多吓人的细节问题、名词和概念,所以本文将会放慢速度慢慢的剖析之。 如果你准备好瞧瞧数字常量的底下有些啥,那就跟我撸起袖子开始干吧: ## 无类型和有类型的数字常量 在 Go 语言中,你既可以在声明常量时指定类型,也可以不指定类型。当我们在代码中声明一个字面量时,我们其实就声明了一个匿...阅读全文

博文 2018-11-07 09:41:50 Alex-liutao

golang比较浮点数是否相等

由于小数二进制和十进制转换的时候,会有精度丢失的问题,所以我们在比较浮点数是否相等,指的是在一定精度范围内的两个浮点数是否相等。 参看了网上其他人的实现 实现1,实现2 基本上都一样,于是我就改了几个值验证了一下, 结果发下 package main import ( "fmt" "math" ) const MIN = 0.000001 // MIN 为用户自定义的比较精度 func IsEqual(f1, f2 float64) bool { return math.Dim(f1, f2) < MIN } func main() { a := 0.9 b := 1.0 if IsEqual(a, b) { fmt.Println("a==b") }else{ fmt.Println("a...阅读全文

博文 2020-04-15 09:32:50 郭青耀

golang编程之时间编程

本文转载于:http://blog.chinaunix.net/uid-24774106-id-4006530.html 编程离不开时间,时间管理,严格的说分成两块,一个是当前的时刻,对应的是一个点,还有是一段时间间隔。本文简单的讲讲go的时间相关的编程,比较简单,高手可以一笑而过。 golang对时间的支持,是package time做的事儿,里面有好多的函数,我就不一一举例学习,毕竟这是官方文档干的事情。我们初步的学习下常用的函数。 第一个是UNIX epoch time,确切的说就是自1970-01-01 00:00:00 GMT以来的秒数,不知道如何获取的,可以在shell下执行 date +%s manu@manu-hacks:~/code/go/self$ date +%s 13...阅读全文

博文 2014-10-04 19:26:10 yavobo

golang 浮点数操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lengyuezuixue/article/details/81354749 数据库中金额元存储的数据结构使用的是decimal(15,2),golang中使用float64保存变量内容。通过转换将 float64 -> int64 最简单的方式:int64(float64 * 100),但是由于浮点数在计算机内的表示方式问题导致有一部分数据会出现问题, 例如: var v = 67.6 fmt.Println(int64(v *100)) 输出结果为:6759 解决方法: 使用"github.com/shopspring/decimal"包,将对浮点数进行精确计算,例如: f1 := deci...阅读全文

博文 2018-12-24 18:31:34 lengyuezuixue

理解Golang的Time结构

在golang中创建并打印一个时间对象,会看到如下输出 2018-10-26 14:15:50.306558969 +0800 CST m=+0.000401093 前面表示的意义好理解,分别是年月日和时间时区,最后的m=+xxxx这部分代表什么呢? Monotonic Clocks 和 Wall Clocks 根据golang的time包的文档可以知道,golang的time结构中存储了两种时钟,一种是Wall Clocks,一种是Monotonic Clocks。 Wall Clocks,顾名思义,表示墙上挂的钟,在这里表示我们平时理解的时间,存储的形式是自 1970 年 1 月 1 日 0 时 0 分 0 秒以来的时间戳,当系统和授时服务器进行校准时间时间操作时,有可能造成这一秒是20...阅读全文

博文 2018-10-26 19:34:40 simpleapples

Go语言核心技术(卷一)之2.1-整数

第二章 序 在计算机底层,一切都是比特位。然而计算机一般操作的都是固定大小的值,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、诗歌或者其它任何对象。Go语言提供了多样化的数据组织方式,这些数据类型既有硬件层面的兼容性,又能让程序员方便的组合成更复杂的数据类型。 Go语言的数据类型分为四大类:基本类型,复合类型,引用类型及接口类型。本章将介绍基本类型:数字,字符串,布尔值。 一、整数 Go语言的数值数据类型包括以下几种:整数,浮点数,复数,每一种都包含了大小(size)不同的数值类型,例如有符号整数包含int8,int16,int32,int64,int。每一种数值类型都会决定值的大小和符号(正负),我们...阅读全文

博文 2016-03-16 15:00:05 abv123456789

Python和C#优劣势对比 python课程

Python是一种跨平台语言。无论是在Windows、Linux、Unix还是Mac Os系统,我们都可以使用Python。甚至在Linux、Unix及Mac OS系统内已经集成了Python。语法简洁优美, 简单,易学。拥有强大的标准库及第三方库。Python的使用范围极广。 C#是微软公司推出的一种功能强大的高级编程语言,能够迅速、高效地完成Windows平台上的项目开发,被称为未来语言! Python和C#语言都是功能强大的有前途的编程语言,那么两者有什么区别呢? 1. Python原本就被设计成类似用英语表达一样,所以语法简单,没有像句法括号和大量的修饰词,易读易学;而C#必须遵循一定的规则,伴随着很多修饰词,还得将代码段放在括号内; 2. 在编写脚本方面,P...阅读全文

学习记录:go语言中读写文件的小练习

package main import ( "os" "fmt" "bufio" "strings" "strconv" ) func main() { f, _:=os.OpenFile("a.txt", os.O_RDONLY, 0666) defer f.Close() m:=bufio.NewReader(f) char:=0 words:=0 lines:=0 for{ s, ok:=m.ReadString('\n') fmt.Println(s) char+=len(s) words+=len(strings.Fields(s)) lines++ if ok!=nil{ break } } fmt.Println("char:"+toString(char)+",words:"...阅读全文

博文 2014-10-04 19:26:30 明述道长

golang中encoding/binary包

1、golang包中的binary包是什么? 2、binary为我们开发者提供了哪些内容?以及怎么使用? 3、编解码有哪几种方法? 转化成二进制格式与原本数据转字符串相比会更节省空间 一、golang包中的binary包是什么? 此包实现了对数据与byte之间的转换,以及varint的编解码。 二、binary为我们开发者提供了哪些内容?以及怎么使用? 数据的byte序列化转换 func Read(r io.Reader, order ByteOrder, data interface{}) error func Write(w io.Writer, order ByteOrder, data interface{}) error func Size(v interface{}) int u...阅读全文

博文 2018-12-12 00:34:46 laijh

Golang strconv包使用

// atob.go ------------------------------------------------------------ // ParseBool 将字符串转换为布尔值 // 它接受真值:1, t, T, TRUE, true, True // 它接受假值:0, f, F, FALSE, false, False. // 其它任何值都返回一个错误 func ParseBool(str string) (value bool, err error) func main() { fmt.Println(strconv.ParseBool("1")) // true fmt.Println(strconv.ParseBool("t")) // true fmt.Println...阅读全文

Go文件操作大全

## 1,介绍 在做对视频文件的处理时,对使用`Go`做文件操作有了锻炼。同时在网上搜索了相关文章和资料,将文件操作的例子整理如下。 [原文连接](https://niannian.cleer.club/category/Go%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E5%A4%A7%E5%85%A8/) ## 2,基本操作 ### 2.1 创建空文件 ```go package main import ( "log" "os" ) var ( newFile *os.File err error ) func main() { newFile, err = os.Create("test.txt") if err != nil { log.Fatal(err...阅读全文

博文 2019-04-14 20:39:34 OctopusLian

gRPC源码/transport/流控

流控 代码 https://github.com/messixukej... 在liangzhiyang/annotate-grpc-go基础上补充了部分注释 发送流控 HTTP/2 流量控制的目标,在流量窗口初始值的约束下,给予接收端以全权,控制当下想要接受的流量大小。 算法: 两端(收发)保有一个流量控制窗口(window)初始值。 发送端每发送一个DATA帧,就把window递减,递减量为这个帧的大小,要是window小于帧大小,那么这个帧就必须被拆分。如果window等于0,就不能发送任何帧。 接收端可以发送 WINDOW_UPDATE帧给发送端,发送端以帧内指定的Window Size Increment作为增量,加到window上。 // 用于发送流控。 将当前可用的quota(...阅读全文

博文 2018-06-10 10:34:37 蓝白狂想

[翻译] effective go 之 Functions

Functions Multiple return values 返回多个值 One of Go's unusual features is that functions and methods can return multiple values. This form can be used to improve on a couple of clumsy idioms in C programs: in-band error returns (such as -1 for EOF) and modifying an argument. Go的函数和方法可以同时返回多个值 这个特性可以改善C程序中的不太理想的多值返回形式 -- 参数传入指针 通过这个指针来修改参数 另外再返回一个值 比如-...阅读全文

博文 2014-10-04 19:26:15 pengfei_xue

常用Python数据类型转换方法 学习python课程

Python 支持四种不同的数值类型,分别是整型、长整型、浮点型和复数,这些类型的数据有各自的特点,在使用过程中也可以进行类型转换,具体转换方法如下: int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在...阅读全文

Go语言学习 第四章 基本数据类型

> Go语言数据类型分为五种: > > + 布尔类型 > + 整型类型 > + 浮点类型 > + 字符类型 > + 字符串类型 > > | **类型** | **名称** | **长度** | **零值** | **说明** | > | --------- | -------- | -------- | -------- | --------------------------------------------- | > | bool | 布尔类型 | 1 | false | 其值不为真即为假,不可以用数字代表true或false | > | byte | 字节型 | 1 | 0 | uint8别名 | > | int, uint | 整型 | - | 0 | 根据操作系统设定数据的值。 ...阅读全文

go源码阅读笔记(math.2)

go源码阅读笔记(math.2) 浮点数与整形数转换math/unsafe.go 在阅读math代码的时候,发现Float64bits以及Float64frombits使用非常多,先查看一下这两个函数是做什么用的 package math import "unsafe" // Float32bits returns the IEEE 754 binary representation of f. func Float32bits(f float32) uint32 { return *(*uint32)(unsafe.Pointer(&f)) } // Float32frombits returns the floating point number corresponding // to ...阅读全文

博文 2016-03-17 00:00:02 qq_15437667

golang中crypto/md5包

md5包实现了MD5哈希算法 先介绍这个包内里的内容,然后再给出生成一个md5值,go使用md5比较复杂很多,php的话,就直接md5(值),就生成md5值了,php更加适合用于生产,而不是学习。 常量 const BlockSize = 64 // MD5字节块大小 const Size = 16 // MD5校验和字节数 func Sum(data []byte) [Size]byte 返回数据data的MD5校验和 func New() hash.Hash 返回一个新的使用MD5校验的hash.Hash接口 h := md5.New() h.Write([]byte("123456")) fmt.Println(h.BlockSize()...阅读全文

博文 2018-12-09 14:34:42 laijh

go中 elastic 聚合统计(1)

go调用elastic使用es聚合统计:1、查询指定金额的订单数func queryCount(indexstring) {client :=getCli()aggsMatch :=es.NewMatchQuery("amount", 1000)result, err := client.Search().Index(index).Size(0).Query(aggsMatch).Do(context.Background())if err !=nil {fmt.Println("err:", err)return}fmt.Sprintf("count:%v,%v", result.Hits.TotalHits, err)}2、字段值汇总和去重复值func aggeQueryCount(in...阅读全文

博文 2019-11-09 09:24:31 545305939

Go语言中多字节字符的处理

1 概述 Go语言的字符串是使用 UTF-8 编码的。UTF-8 是 Unicode 的实现方式之一。本文内容包括:UTF-8 和 Unicode 的关系,Go语言提供的 unicode 包和 unicode/utf8 包的使用。 2 UTF-8 和 Unicode 的关系 Unicode一种字符集,是国际标谁化组织(ISO)设计的一个包括了地球上所有文化、所有字母和符号 的编码。他们叫它 Universal Multiple-Octet Coded Character Set,简称 UCS,也就是 Unicode。Unicode 为每一个 字符 分配一个唯一的 码点(Code Point),就是一个唯一的值。例如 康 的码点就是 24247,十六进制为 5eb7。Unicode 字符集仅仅...阅读全文

博文 2018-10-28 07:35:09 小韩说课

GoLang Go 基础类型

Boolean 布尔值的类型为bool,true或false,默认false var isActive bool // 全局变量声明 var enabled, disabled = true, false // 忽略类型的声明 func test() { var available bool // 一般声明 valid := false // 简短声明 available = true // 赋值操作 } 数值类型 整数类型 整数类型有无符号和带符号两种。 Go同时支持int和uint,这两种类型的长度相同,但具体长度取决于不同编译器的实现。Go里面也有直接定义好位数的类型:rune, int8, int16, int32, int64和byte, uint8, uint16, uint32...阅读全文

兄弟连区块链教程btcpool矿池源码分析JobMaker模块解析

btcpool矿池-JobMaker模块解析 核心机制总结 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印log 可用的Gbt消息,将以gbtTime+isEmptyBlock+height来构造key写入本地Map,另gbtHash也会写入本地队列 本地gbtHash队列仅保存最近20条,本地gbtMap中Gbt消息有效期:非空Gbt有效期90秒,空Gbt有效期15秒,过期将清除 有效期可从配置文件中指定 Gbt消息如果高度低于本地Gbt高度,且本地Gbt非空,且与本地时间间隔没超过2倍stratumJobInterval_,Gbt消息将...阅读全文

博文 2018-10-16 12:34:38 兄弟连区块链培训

兄弟连区块链教程btcpool矿池源码分析JobMaker模块解析

兄弟连区块链教程btcpool矿池源码分析JobMaker模块解析,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上。# btcpool矿池-JobMaker模块解析## 核心机制总结* 同时监听kafka KAFKA_TOPIC_RAWGBT和KAFKA_TOPIC_NMC_AUXBLOCK,以支持混合挖矿* 接收的Gbt消息,如果与本地时间延迟超过60秒将丢弃,如果延迟超过3秒将打印log* 可用的Gbt消息,将以gbtTime+isEmptyBlock+height来构造key写入本地Map,另gbtHash也会写入本地队列* 本地gbtHash队列仅保存最...阅读全文

博文 2018-10-16 18:34:42 兄弟连区块链培训

Go语言核心之美 2.1-整数

第二章 序 在计算机底层,一切都是比特位。然而计算机一般操作的都是固定大小的值,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、诗歌或者其它任何对象。Go语言提供了多样化的数据组织方式,这些数据类型既有硬件层面的兼容性,又能让程序员方便的组合成更复杂的数据类型。 Go语言的数据类型分为四大类:基本类型,复合类型,引用类型及接口类型。本章将介绍基本类型:数字,字符串,布尔值。 一、整数 Go语言的数值数据类型包括以下几种:整数,浮点数,复数,每一种都包含了大小(size)不同的数值类型,例如有符号整数包含int8,int16,int32,int64,int。每一种数值类型都会决定值的大小和符号(正负),我们...阅读全文

「Go」byte、rune与string

不积跬步,无以至千里;不积小流,无以成江海。 码字不易,点赞再看。 byte 占用1个节字,也就是 8 个比特位,所以它和 uint8 类型本质上没有区别,它表示的是 ACSII 表中的一个字符。 如下这段代码,分别定义了 byte 类型和 uint8 类型的变量 a 和 b import "fmt" func main() { var a byte = 65 // 8进制写法: var c byte = '\101' 其中 \ 是固定前缀 // 16进制写法: var c byte = '\x41' 其中 \x 是固定前缀 var b uint8 = 66 fmt.Printf("a 的值: %c \nb 的值: %c", a, b) // 或者使用 string 函数 // fmt.Pr...阅读全文

博文 2020-04-20 21:32:43 不住隔壁的王老师

Golang代码搜集-基于RSA的公钥加密私钥解密-私钥签名公钥验证

2018年03月02日 22:29:54 阅读数:465 首先由genkey.go生成公钥和私文件,在rsa.go里使用生成的公钥和私钥进行加密和解密 //文件 genkey.go //生成公钥和私钥 pem文件 ```go package main import ( "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/pem" "flag" "log" "os" ) func main() { var bits int flag.IntVar(&bits, "b", 1024, "秘钥长度,默认为1024") if err := GenRsaKey(bits); err != nil { log.Fatal("秘钥文件生成失败") } lo...阅读全文

博文 2018-08-18 19:15:40 yuluxs

最难学的十大编程语言,C++排第二,它竟是第一名!

编程语言是开发者们代码工作的核心,也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要,前者需要保持最新和具备市场潜力的技能,后者则亟需确保他们能够提供最有用的 SDK。开发者经济分析公司 SlashData 曾发布了《 2018 年第 2 季度各国开发者状况》调查报告,共有 167 个国家的 20500 多名开发者参与其中。报告面向全球所有类型的程序员,对使用每种主要编程语言的活跃开发者数量进行了最新的估计。其中,JavaScript 仍是最流行的编程语言,Python 流行程度接近 Java。 哪种语言最难学呢?每个人也许都有着自己的想法,衡量标准各不相同。现在我们从一个全新的,无可反驳的角度来分析一下各个编程语言难学程度。第十名、R语言颁奖词R语言,一种自由软件编...阅读全文

博文 2019-03-08 01:34:40 学习编程__

Golang不同类型比较

在日常开发过程中难免会遇到各个类型的变量的比较以及运算操作,这里我们做了一些简单的汇总,希望能给各位同学在开发中带来帮助。 这里先上一波关系运算符==,!=,<,<=,> 和 >=。 float浮点数比较 golang 支持两种浮点float32和float64,众所众知,涉及浮点数比较或运算是会遇到精度问题,具体要根据golang实现IEEE 754的情况定。 默认情况下,float32精度是小数后7位,float64精度是小数点后15位。 如例1: var a float32 = 1.00000001 var b float32 = 1.000000000001 var c float32 = 1.0000001 var d float32 = 1.000000000001 fmt.Pr...阅读全文

博文 2019-07-29 16:32:52 guyan0319

Golang学习(14)——Unicode utf8包

Golang学习 - unicode/utf8 包----------------------------// 编码所需的基本数字const ( RuneError = '\uFFFD' // 错误的 Rune 或 Unicode 代理字符 RuneSelf = 0x80 // ASCII 字符范围 MaxRune = '\U0010FFFF' // Unicode 码点的最大值 UTFMax = 4 // 一个字符编码的最大长度)------------------------------------------------------------// 将 r 转换为 UTF-8 编码写入 p 中(p 必须足够长,通常为 4 个字节)// 如果 r 是无效的 Unicode 字符,则写入 ...阅读全文

博文 2017-02-10 10:20:23 1160636144

Go语言核心之美 2.1-整数

版权声明:本文为Sunface(孙飞)原创文章,转载请注明出处 https://blog.csdn.net/abv123456789/article/details/50902368 第二章 序 在计算机底层,一切都是比特位。然而计算机一般操作的都是固定大小的值,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、诗歌或者其它任何对象。Go语言提供了多样化的数据组织方式,这些数据类型既有硬件层面的兼容性,又能让程序员方便的组合成更复杂的数据类型。 Go语言的数据类型分为四大类:基本类型,复合类型,引用类型及接口类型。本章将介绍基本类型:数字,字符串,布尔值。 一、整数 Go语言的数值数据类型包括以下几种:整数...阅读全文

go语言总结第二章

var和const :变量和常量的声明 var varName type 或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 break、case、continue、for、fallthrough、else、if、switch、 goto、default 流程控制 chan用于channel通讯 type用于声明自定义类型 map用于声明map类型数据 range用于读取slice、map、channel数据大写,即...阅读全文

博文 2015-07-22 03:00:00 lovlin

Go语言中多字节字符的处理

## 1 概述 Go语言的字符串是使用 `UTF-8` 编码的。`UTF-8` 是 `Unicode` 的实现方式之一。本文内容包括:`UTF-8` 和 `Unicode` 的关系,Go语言提供的 `unicode` 包和 `unicode/utf8` 包的使用。 ## 2 `UTF-8` 和 `Unicode` 的关系 `Unicode`一种字符集,是国际标谁化组织(ISO)设计的一个包括了地球上所有文化、所有字母和符号 的编码。他们叫它 `Universal Multiple-Octet Coded Character Set`,简称 UCS,也就是 `Unicode`。`Unicode` 为每一个 字符 分配一个唯一的 码点(Code Point),就是一个唯一的值。例如 康 的码点就...阅读全文

博文 2018-10-30 22:05:53 hanzkering

最难学的十大编程语言,原来这个C++这么难是因为这个?

编程语言是开发者们代码工作的核心,也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要,前者需要保持最新和具备市场潜力的技能,后者则亟需确保他们能够提供最有用的 SDK。根据《2018-2019中国开发者调查报告》,对使用每种主要编程语言的活跃开发者数量进行了最新的估计。在编程语言方面,Java、R 和 Java 成为开发者使用最多的编程语言,但得益于人工智能的持续火爆和深度应用,Python 却是开发者近期最想学的开发语言,其次是 Java 和 R,占比分别为 35% 和 26%。 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群:954607083,领取C/C++学习资料 哪种语言最难学呢?每个人也许都有着自己的想法,衡量标准各不相同。现在我们从一...阅读全文

博文 2019-03-30 02:34:40 筠子_ca05

Go学习笔记之基础数据类型

http://studygolang.com/articles/1348 1 整数 在 Go 语言中,如果不加特殊前缀,都是10进制表示,例如:“100” 整数可以直接用指数形式,例如:“1E9”,意思是 1 * (10^9),1 乘以 10 的 9 次方 整数的加减法用 + 和 - 号,乘法用 * 号,除法用 / 号, 得到的商是整数,例如 5 / 2 = 2,而 % 号是求余(取模), 例如 5 % 2 = 1 在 Go语言中,整数类型分为带符号整型和不带符号整型,接着又分别按照长度各自划分为4个类型。 带符号整型 int8 int16 int32 int64 不带符号整型 uint8 uint16 uint32 uint 64 除此之外还有默认类型 int 和 uint,目前都是32位...阅读全文

博文 2016-06-16 13:00:16 kungfupanda

golang bytes.buffer详解

Buffer 介绍 Buffer 是 bytes 包中的一个 type Buffer struct{…} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法。 Buffer 的 零值 是一个 空的 buffer,但是可以使用) Buffer 就像一个集装箱容器,可以存东西,取东西(存取数据) 创建缓冲器 func main() { buf1 := bytes.NewBufferString("hello") buf2...阅读全文

博文 2019-01-11 21:34:44 豆瓣奶茶

阿里员工都是这样排查Java问题的,附工具单

平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常觉得帮助很大的工具,大家一起进步。Linux命令类tail最常用的tail -f​grep​awk1 基础命令​2 匹配​3 内建变量NR:NR表示从awk开始执行后,按照记录分隔符读取的数据次数,默认的记录分隔符为换行符,因此默认的就是读取的数据行数,NR可以理解为Number of Record的缩写。FNR:在awk处理多个输入文件的时候,在处理完第一个文件后,NR并不会从1开始,而是继续累加,因此就出现了FNR,每当处理一个新文件的时候,FNR就从1开始计数,FNR可以理解为File Numb...阅读全文

博文 2019-01-04 16:18:04 Javagaojijiagou

GO语言学习笔记

Go语言的基本数据类型与表达式 基本数据类型 go的数据类型可归纳如下: 基本类型 整型: int、 int8、 int16、 int32、 int64 bool: true、 false 浮点数: float32、 float64 复数: complex64、 complex128 错误(error) 构造类型 数据类型([]) 结构体类型(struct) 指针类型(*) 声明变量 1、整型(int、int8、int16、int32、int64) var i int = 1 //定义整型变量i并赋值1 var j int j = 1 // 也可以这样定义 k := 1 // 还可以这样定义 给整型赋值时需要注意 var a int // a是通用整数类型 var b int32 // b是...阅读全文

博文 2016-04-29 11:00:04 KetanCheung

golang中encoding/base64包

go标准库中的base32包与base64包的提供的方法以及使用几乎一至,不同的地方就是就是底层实现,一个是进行base32编解码操作,另一个是进行base64编解码操作。如果是已经知道go base32包的使用的话,可以不用看下面的内容,或者是简单的过一遍。 1、golang中的base64包中有什么内容? 2、base64给我们开发者提供了什么?以及用法? 3、编码与解码各有哪几种操作? 一、golang中的base64包中有什么内容? 这个包实现了RFC 4648 里定义的 base64 编码。封装了base64的编解码操作。 二、base64给我们开发者提供了什么?以及用法? 变量 RFC 4648 里定义的标准 base64 编码方法 var StdEncoding = NewEn...阅读全文

博文 2018-12-11 20:34:44 laijh

Golang基本结构之练习(day2)

笔记: 1. 任何一个代码文件隶属于一个包 2. import 关键字,引用其他包: import(“fmt”) import(“os”) 通常习惯写成: import ( “fmt” “os” ) 3. golang可执行程序,package main, 并且有且只有一个main入口函数 4. 包中函数调用: a. 同一个包中函数,直接调用 b. 不同包中函数,通过包名+点+ 函数名进行调用 5. 包访问控制规则: 大写意味着这个函数/变量是可导出的 小写意味着这个函数/变量是私有的, 包外部不能访问 练习: package main /* 算出结果是: 0+10=10 1+9=10 2+8=10 3+7=10 4+6=10 5+5=10 6+4=10 7+3=10 8+2=10 9+1=...阅读全文

博文 2017-12-14 12:00:00 pyyu

golang之redis入门: hash表

import ( "fmt" "github.com/garyburd/redigo/redis" ) /* hash的一些基本操作: hset hash field value 将哈希表hash中域 field 的值设置为 value 如果哈希表不存在, 那么将创建并写入, 如果存在则更新hash表中的数据 eg: 127.0.0.1:6379> hset website google www.g.cn (integer) 1 127.0.0.1:6379> hget website google "www.g.cn" hsetnx hash field value 当且仅当域field不存在于哈希表中的时候,将值设置为value 如果表不存在 则创建并执行写入field value eg...阅读全文

博文 2019-06-27 20:02:43 五知小白羊

对 Go 中长时间运行 io.Reader 和 io.Writer 的操作测算进度和估算剩余时间

![img](https://raw.githubusercontent.com/studygolang/gctt-images/master/reader-writer/1_YfQ0FQIK4l6NMW3wsl9NNw.jpeg) 每当我们在使用类似 io.Copy 和 ioutil.ReadAll 的工具时,比如我们正在从 http.Response 主体读入或者上传一个文件,我们会发现这些方法将一直堵塞,直到整个过程完成,哪怕耗时数十分钟甚至是小时——而且我们没有办法来查看进度,以及计算出完成所需剩余时间的估测值。 本文很长,不想深究瞅这里:这篇文章最终导向 progress 包,你可以在自己的项目中自由使用——https://github.com/machinebox/progres...阅读全文

博文 2018-03-09 19:42:28 polaris

go--读取文件的方式

package main import ( "bufio" "fmt" "io" "io/ioutil" "os" "testing" ) const fileName = "README.md" //按照处理的字节数读取 func TestReadFilr(t *testing.T) { file, err := os.Open(fileName) if err != nil { t.Error(err) } buffer := make([]byte, 1024) for { if a, b := file.Read(buffer); a != 0 && b != io.EOF { fmt.Println(b) } else { return } } } // 一次性读取 func Te...阅读全文

博文 2018-10-23 22:34:38 FIZLIN

golang 中的 io包

一些抽象化的接口 读相关 名称 作用 备注 Read 读接口 1 ReadCloser 读接口(包含 Close接口) 2 ReadSeeker 从哪里读到哪里 3 ReaderAt 从一定距离开始读 4 ReaderFrom 包含 ReadForm方法,读到Eof 或 error停止。返回读到的字节数 5 写相关 名称 作用 备注 Writer 读接口 1 WriteCloser 读接口(包含 Close接口) 2 WriteSeeker 从哪里读到哪里 3 WriterAt 从一定距离开始读 4 WriterTo 包含 WriterTo 方法,读到Eof 或 error停止。返回写入的字节数 几个函数方法 1. Copy (内部实现了 ReaderFrom 和 WriterTo 接口) ...阅读全文

博文 2017-07-09 06:03:50 中柠檬

深入Go语言 - 13 反射

目录 [−] TypeValue转换 本章重点介绍Go语言中的反射。包reflect可以实现运行时的反射,允许程序操纵对象的值和类型。典型地,你可以获取 interface{}的动态类型以及的它的值和方法。 Go是静态类型的语言,每一个对象在声明和初始化的时候都已经有一个确定值,即使是声明为接口类型的变量,它的静态类型也已经确定,即使任何包含这个接口方法集的类型的对象都可以赋值给它。 我们可以在运行时获取对象的动态类型和值。 类型Type和值Value是我们使用发射库的主要用的两个概念。 Type Type是一个interface,代表Go中的一个类型,可以把它看成某个类型的元数据(描述类型的类型),这个类型既可以是Go语言或者库中定义的type类型,也可以你自己定义的type类型。 下面我...阅读全文

博文 2017-02-08 12:53:41 smallnest

TLS1.3 协议的Golang 实现——ClientHello

前言 撰写本文时TLS1.3 RFC 已经发布到28版本。以前写过一点密码学及TLS 相关的文章,为了更深入理解TLS1.3协议,这次将尝试使用Go语言实现它。网络上已有部分站点支持TLS1.3,Chrome浏览器通过设置可支持TLS1.3 (draft23),利用这些条件可验证,我们实现的协议是否标准。 完整的实现TLS1.3 工作量很大,概念和细节非常多(感觉又在挖坑)。本文首先会从ClientHello开始,后续可能会考虑 :Authentication、Cryptographic Computations、0-RTT 。 5G 未来 每次基础设施的升级都是时代变革的前奏。 在移动互联网2G/3G时代,很多创新都约束在了Wifi 下;移动互联网进入4G时代后,爆发了各种直播、短视频等创...阅读全文

博文 2018-07-02 21:35:45 云栖技术