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

golang中 type func() 用法分析

在看golang 的http服务部分代码时,被golang 中的 type func()写法难住了,一时没看懂代码。后来查资料后,有了一点理解。 在golang中可以通过这样简单实现一个http服务 package main import "net/http" func mHttp() { http.HandleFunc("/", h) http.ListenAndServe("0.0.0.0:8888",nil) } func h(w http.ResponseWriter, r *http.Request) { } http.HandleFunc()是一个注册函数,传一个string类型的路由,和一个函数,函数的参数为(http.ResponseWriter, *http.Request...阅读全文

博文 2019-08-25 19:02:39 紫葡萄0

Go中map的创建和初始化

// code_014_map_usage project main.go package main import ( "fmt" ) func main() { /*Go语言中的map(映射,字典)是一种内置的数据结构,它是一个无序的key-value对的集合。 1)键的约束: 在一个map里所有的键都是唯一的,而且必须是支持==和!=操作符的类型 2)切片、函数以及包含切片的结构类型这些类型由于具有引用语义,不能作为映射的键 err, invalid map key type []string 3)map值: 可以是任意类型,没有限制。 4)键值的数据类型: map里所有键的数据类型必须是相同的,值也必须如何,但键和值的数据类型可以不相同。 5)注意:map是无序的,我们无法决定它的返回...阅读全文

博文 2018-10-05 01:35:15 ck_god

Golang二进制转换十进制代码

Golang二进制转换十进制代码,使用 container/list 实现出入栈操作,完成转换。 二进制转十进制的方法是:‍‍从右到左的取数值乘以2的N次幂,依次相加,N为数值在二进制中的位数。‍‍ package main /** 二进制转换成十进制 核心: 入栈、出栈、类型转换 sum += int(v-48) * int(math.Pow(2, N)) **/ import ( "container/list" "fmt" "math" ) func main() { stack := list.New() var input string var sum int var stnum, conum float64 = 0, 2 fmt.Printf("请输入一段二进制数字:") fmt...阅读全文

博文 2015-06-05 14:00:01 一曲

golang time时间类型转换

获取系统当前时间 now := time.Now()fmt.Println(now) 2017-06-20 17:45:30.6609668 +0800 CST time格式化为字符串 now := time.Now()formatNow := now.Format("2006-01-02 15:04:05")fmt.Println(formatNow) 2017-06-20 18:16:15 字符串转换为time local, _ := time.LoadLocation("Local")t, _ := time.ParseInLocation("2006-01-02 15:04:05", "2017-06-20 18:16:15", local)fmt.Println(t) 2017-0...阅读全文

博文 2017-06-20 11:06:07 shmily

Golang基本类型整理

总是用的用的就模糊了,不知道基本的类型有哪些,看来要反反复复弄几次。 Golang基本类型整理 基本类型以及定义变量需要注意的 对于基本类型的介绍,感觉这个博客讲的比较透彻,基本上都是从源码的角度来入手分析的,自己并没有理解到这么深入的程度,这里跟着文章过一下,挑一些主要的部分记录一下。在go语言中,数据类型分为静态类型和底层类型,感觉底层类型是golang实现的时候所使用的c语言的类型,而静态类型仅仅是针对于go语言本身而言所定义好的类型。具体的信息可以查看$GOROOT/src/runtime/runtime.h 可以看到golang中的byte类型,通过typedef uint8 byte来定义,这样在golang中直接使用反射 package main import ( "fmt" ...阅读全文

博文 2015-06-23 03:00:00 Goden

golang的类型转换的坑和分析

首先,我们来看一个例子 type Stringer interface { String() string } type String struct { data string } func (s *String) String() string { return data } 上面是类型,然后 func GetString() *String { return nil } func CheckString(s Stringer) bool { return s == nil } func main() { println(CheckString(GetString())) } 你们猜答案是什么? 当然,这么诡异的提问方式一看答案就是不合常理的false。 在CheckString里面,s是...阅读全文

博文 2016-04-09 21:00:01 cangdu

Golang字符串格式化

Golang字符串格式化 package main import "fmt" type point struct { x, y int } func main() { // 格式化整型,使用`%d`是一种 // 标准的以十进制来输出整型的方式 // 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。) fmt.Println("=====%d,输出十进制====") fmt.Printf("%d\n", 110) //Output: 110 // 输出整型的二进制表示方式 fmt.Println("=====%b,输出二进制====") fmt.Printf("%b\n", 110) //Output: 1101110 // 输出整型数值所对应的字符(c...阅读全文

golang 函数作为类型

golang 函数作为类型 package main import "fmt" type A func(int, int) func (f A)Serve() { fmt.Println("serve2") } func serve(int,int) { fmt.Println("serve1") } func main() { a := A(serve) a(1,2) a.Serve() } type functinTyoe func(int) bool // 声明了一个函数类型 func isOdd(integer int) bool { if integer%2 == 0 { return false } return true } func isEven(integer int) b...阅读全文

博文 2015-04-16 03:00:00 rojas

golang中string与byte的转换

某些场景下,函数参数需要byte类型的,已知参数是string类型的,那怎么由string类型转换成byte类型呢,比如:bufio.ReadSlice的第二个参数就是byte类型的:func(b *Reader)ReadSlice(delimbyte) (line []byte, errerror)可以通过两个方法由string得到byte,第一个是: 注意到,这里的G既不是""双引号又不是``这种go里面字符串引起来的,而是普通的单引号。第二种方法是: 这种曲折的方法,先转成[]byte,然后再取第一个...阅读全文

博文 2017-08-17 12:05:06 舒小贱

golang: 类型转换和类型断言

类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同的处理方式。 golang中的所有类型都有自己的默认值,对此我做了个测试。 $GOPATH/src ----typeassert_test --------main.go main.go的代码如下: package main import ( "fmt" ) type myStruct struct { name bool userid int64 } var structZero myStruct v...阅读全文

博文 2014-10-04 19:26:57 陈一回

Go语言中包的风格指南

# Go语言中包的风格指南 Go 语言也有自己的命名与代码组织规则。漂亮的代码,布局清晰、易读易懂,就像是设计严谨的 API 一样。拿到代码,用户首先看到和接触的就是布局、命名还有包的结构。 这篇文章不是为了给大家设立硬性的规定,而是用实践引导大家形成自己的规则。因为具体问题要具体分析,通过自己的判断才能挑选出最恰当的规则。 ## 包 所有的 Go 代码都是以包的形式组织起来的。Go 中的包就是目录或文件夹里面包括一个或者多个以 `.go` 结尾的文件。用目录或文件夹这样的方式来管理代码,与电脑管理目录或文件夹是一样一样的。 所有的 Go 代码都是放在包里的,且只能是通过包来进行访问。理解并且建立良好的包的习惯,可以帮助写出高效的代码。 * * * ## 包的组织 我们先聊聊如何组织 Go ...阅读全文

博文 2017-12-04 07:08:17 wi-cuckoo

GoLang基础语法

变量定义 从hello world入手 package main import "fmt" func main() { fmt.Println("Hello World") } 控制台输出: Hello World 变量默认值 package main import "fmt" func main() { var a int var s string fmt.Println(a, s) } 控制台输出: 0 注:s为"",故打印出来没有效果 如果想让""字符串显示,则代码如下: package main import "fmt" func main() { var a int var s string fmt.Println(a, s) fmt.Printf("%d %q\n", a, s)...阅读全文

博文 2018-09-23 21:34:39 等她下班

golang中json.Number妙用

最近跟某斯调试一个API接口,接口返回数据是json格式 ,按文档描述是一个整型数据,于是定义如下 type Data struct { Api int `json:"api"` } 在入参相同的情况下,第一次调用,得到的结果是: {"api":1} 然而第二次调用,得到结果却是: {"api":"1"} 与对方开发人员沟通后发现这是一个bug,由于流程问题,没办法立即修改上线,想想还是我做兼容比较好,效果是既能解析于{"api":1},也能够解析{"api":"1"},于是我想到了json.Number,Number类型定义如下 The representation of numbers is similar to that used in most programming languag...阅读全文

博文 2018-07-17 23:34:46 wu_sphinx

更优雅的 Golang 错误处理

Golang 中的错误处理是一个被大家经常拿出来讨论的话题(另外一个是泛型)。其中泛型这个问题,rsc 在最近的计划中也提出了纳入他今年的考虑计划中,同时,泛型的提案在2016年也进行了一些更新,相信未来会有一些更好的方案提出。这个文章我们讨论一下如何在现行的 Golang 框架下提供更友好和优雅的错误处理。 从现状谈起 Golang 中的错误处理原则,开发者曾经之前专门发布了几篇文章( Error handling and Go 和 Defer, Panic, and Recover、Errors are values )介绍。分别介绍了 Golang 中处理一般预知到的错误与遇到崩溃时的错误处理机制。 一般情况下,我们还是以官方博客中的错误处理例子为例: func main() { f,...阅读全文

博文 2017-02-10 07:42:04 kevin

关于golang中map的key的类型

golang中的map,的 key 可以是很多种类型,比如 bool, 数字,string, 指针, channel , 还有 只包含前面几个类型的 interface types, structs, arrays 显然,slice, map 还有 function 是不可以了,因为这几个没法用 == 来判断 原文如下: As mentioned earlier, map keys may be of any type that is comparable. The language spec defines this precisely, but in short, comparable types are boolean, numeric, string, pointer, channe...阅读全文

博文 2016-09-03 14:00:07 hificamera

golang sort 包使用,及三个简单排序算法冒泡,插入,选择 练习

sort 包的核心类型是 sort.Interface: type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) bool // Swap swaps the elements with indexes i and j. Swap(i, j int) } 接口 是golang 的很cool 的特性,rob pike 说接口有点类似uinx pipe,把...阅读全文

博文 2015-01-22 17:00:11 yujian0231

golang reflect

golang reflect go语言中reflect反射机制。详细原文:地址 接口值到反射对象 package main import ( "fmt" "reflect" ) func main() { var x int = 1 fmt.Println("type: ", reflect.TypeOf(x)) } type: int TypeOf函数的定义如下,参数为接口类型,返回值为类型 func TypeOf(i interface {}) Type ValueOf函数的定义如下,参数为接口类型,返回值为Value var x int = 1 fmt.Println("value: ", reflect.ValueOf(x)) value: 可以通过Kind函...阅读全文

GOLANG 基本数据类型 整型

基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位数) int uint 类型别名 Unicode字符rune类型等价int32 byte等价uint8 特殊类型 uintptr,无符号整型, 由系统决定占用位大小,足够存放指针即可,和C库或者系统接口交互 取值范围 具体类型 取值范围 int8 -128到127 uint8 0到255 int16 -32768到32767 uint16 0到65535 int32 -2147483648到2147483647 uint32 0到4294967295 int64 -9223372036854775808到9223...阅读全文

博文 2016-08-30 16:00:00 zengyz

javaer to go之byte类型转换

在Socket的Server和Client通信的过程中,传输的都是字节。而我们需要展示和使用的是字符串、整形等。这个时候,我们需要对字节进行处理,把byte类型的数据转成我们需要的类型。 1、[]byte与16进制字符串 []byte转16进制字符串 import ( "bytes" "strconv" ) //byte转16进制字符串 func ByteToHex(data []byte) string { buffer := new(bytes.Buffer) for _, b := range data { s := strconv.FormatInt(int64(b&0xff), 16) if len(s) == 1 { buffer.WriteString("0") } buffe...阅读全文

博文 2016-04-23 14:00:01 p_3er

go语言之整形和字节数组的转换

go语言之整形和字节数组的转换 //整形转换成字节 func IntToBytes(n int) []byte { tmp := int32(n) bytesBuffer := bytes.NewBuffer([]byte{}) binary.Write(bytesBuffer, binary.BigEndian, tmp) return bytesBuffer.Bytes() } //字节转换成整形 func BytesToInt(b []byte) int { bytesBuffer := bytes.NewBuffer(b) var tmp int32 bin...阅读全文

博文 2015-06-17 23:01:43 bojie5744

[golang]string及map[string]string类型的封装

在处理url参数时,你是否会因为要经常将字符串类型转换为其他类型,而感觉到代码冗长,麻烦?所以我将自己几个项目都用到的字符串封装提取了出来,提供大家使用。具体实现非常简单,可到liamylian/values查看,下面给出用法: import "github.com/liamylian/values" var v values.Value // 设置默认值,如果为空则使用默认值 v = values.Value("") d := v.Default("happy").String() // 空值判断 v = values.Value("") isEmpty := v.IsEmpty() // 类型转换 v = values.Value("1") s := v.String() b := v....阅读全文

博文 2018-09-26 10:34:52 inspii

Go语言内幕(1):主要概念与项目结构

本文由 伯乐在线 - yhx 翻译,唐尤华 校稿。未经许可,禁止转载!英文出处:Sergey Matyukevich。欢迎加入翻译组。这个系列博客主要为那些对 Go 基本知识已经有一定了解,又希望对其内部细节进行更深一步地探索的人准备的。今天这一篇主要分析 Go 源代码的基本结构以及 Go 编译器的某些内部细节。读完这篇博客后,你会得到下面三个问题的答案: 1. Go 源代码结构是什么样子的? 2. Go 编译器是如何工作的? 3. Go 语言中的结点树的基本结构是什么样的? 让我们开始吧 每当开始学习一门新编程语言的时候,你总是可以找到大量的 “hello world” 教程、新手指南或者关于语言的主要概念、语法甚至标准库的文档。然而,当你想找一些介绍得更加深入的资料,比如语言运行时分配的...阅读全文

博文 2016-05-31 19:49:01 伯乐在线

Golang中的类型和类型断言

#### golang中的类型 golang中的有两种类型,**静态类型(static type)**和**动态类型(dynamic type)** **静态类型**:静态类型是在声明变量的时候指定的类型,一个变量的静态类型是永恒不变的,所以才被称为静态类型,也可以简称为类型,普通变量只有静态类型。 ``` package main import "fmt" func main() { // 变量i和变量g只有静态类型,变量i的类型为int,i的类型为main.Goose, var i int var g Goose fmt.Printf("%T\n", i) fmt.Printf("%T\n", g) } type Goose struct { age int name string } ...阅读全文

博文 2019-04-26 17:14:08 LeeYubo

golang map to struct

map映射到结构体,这里只支持简单的数据类型,复杂的需要在拓展 package main import ( "errors" "fmt" "reflect" "strconv" "time" ) type User struct { Name string Age int8 Date time.Time } func main() { data := make(map[string]interface{}) data["Name"] = "张三" data["Age"] = 26 data["Date"] = "2015-09-29 00:00:00" result := &User{} err := FillStruct(data, result) fmt.Println(err, fmt...阅读全文

博文 2015-09-29 16:00:03 别人说我名字很长

golang strconv数据类型转换的用法

strconv是golang用来做数据类型转换的一个库。 介绍下strconv最常用的两个方法, 虽然没有解释语言那么自在可以str(int),int(string), 那还算简练。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/2016/03/08/golang-strconv%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2%E7%9A%84%E7%94%A8%E6%B3%95/ Python #xiaorui.cc Atoi (string to int) func Atoi(s string) (i int, err error) Itoa (int to ...阅读全文

博文 2017-04-04 19:25:09 rfyiamcool

goLang 类型断言 type assertion

goLang有类型转换/类型断言/类型切换 1.类型断言 类型断言就是将接口类型的值(x),装换成类型(T)。格式为: x.(T) v:=x.(T) v,ok:=x.(T) 类型断言的必要条件就是x是接口类型,非接口类型的x不能做类型断言: var i int=10 v:=i.(int) //错误 i不是接口类型 T可以是非接口类型,如果想断言合法,则T应该实现x的接口 T也可以是接口,则x的动态类型也应该实现接口T var x interface{}=7 //x的动态类型为int,值为7 i:=x.(int) // i的类型为int ,值为7 type I interface {m()} var y I s:=y.(string) //非法: string 没有实现接口 I (missin...阅读全文

博文 2018-02-05 15:34:42 soledad

Go接口详解

Go接口的设计和实现是Go整个类型系统的一大特点。接口组合和嵌入、duck typing等实现了优雅的代码复用、解耦、模块化的特性,而且接口是方法动态分派、反射的实现基础(当然更基础的是编译期为运行时提供的类型信息)。理解了接口的实现之后,就不难理解"著名"的nil返回值问题以及反射、type switch、type assertion等原理。本文主要基于Go1.8.1的源码介绍接口的内部实现及其使用相关的问题。 1. 接口的实现 (1) 下面是接口在runtime中的实现,注意其中包含了接口本身和实际数据类型的类型信息: // src/runtime/runtime2.go type iface struct { // 包含接口的静态类型信息、数据的动态类型信息、函数表 tab *itab...阅读全文

博文 2017-06-20 05:45:29 pax0s

雨痕新作《Go语言学习笔记》出版了

《Go语言学习笔记》——雨痕著 出版了。购买地址: - [china-pub](http://product.china-pub.com/4971695) - [京东](http://item.jd.com/10466396823.html) 目录: ``` 上卷 语言详解 第1 章 概述 ............... 3 1.1 特征 ....................... 3 1.2 简介 ....................... 6 第2 章 类型 ..............18 2.1 变量 ..................... 18 2.2 命名 ..................... 22 2.3 常量 ........................阅读全文

Golang实现多线程并发下载

大家都用过迅雷等下载工具,特点就是支持并发下载,断点续传。我们这里不介绍它,这个比较复杂了,逼人也不懂。本文只介绍狭义上的简易的断点续传和狭义上的多线程下载。跟之前一样,旨在研究原理,实际生活中基本没啥用,实测下来多线程下载比单线程下载还慢。。。太丢人了。 主要讲三个方面,如何HTTP的并发下载、通过Golang进行多协程开发、如何断点续传。 HTTP的并发下载 想要并发下载,就是把下载内容分块,然后并行下载这些块。这就要求服务器能够支持分块获取数据。大迅雷、电驴这种都有自己的协议,thunder://这种,我们只研究原理,就说说HTTP协议对于并发的支持。 HTTP头 对应值 含义 Content-Length 14247 HTTP响应的Body大小,下载的时候,Body就是文件,也可以认...阅读全文

博文 2017-02-09 12:25:29 Bryce

go语言的比较运算

首先区分几个概念:变量可比较,可排序,可赋值 可赋值 规范里面对赋值是这么定义的:https://golang.org/ref/spec#Assignability A value x is assignable to a variable of type T ("x is assignable to T") in any of these cases: x's type is identical to T. x's type V and T have identical underlying types and at least one of V or T is not a defined type. T is an interface type and x implements T. x...阅读全文

博文 2017-10-11 18:34:47 CodeGeek

golang-利用反射给结构体赋值

由于想给一个结构体的部分成员赋值,但是有不知道具体名字,故将tag的json名字作为索引,按照json名字来一一赋值 //将结构体里的成员按照json名字来赋值 func SetStructFieldByJsonName(ptr interface{}, fields map[string]interface{}) { logger.Debug("fields:", fields) v := reflect.ValueOf(ptr).Elem() // the struct variable for i := 0; i < v.NumField(); i++ { fieldInfo := v.Type().Field(i) // a reflect.StructField tag := fi...阅读全文

博文 2017-11-06 01:00:01 fwdqxl

GoLang基础数据类型--->字典(map)详解

GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是函数吗?学过python的小伙伴可能会想到map这个函数。其实它就是Golang中的字典。下面跟我一起看看它的特性吧。map 也就是 Python 中字典的概念,它的格式为“map[keyType]valueType”。 map 的读取和设置也类似 slice 一样,通过 key 来操作,只是 slice 的index 只能是`int`类型,而 map 多了很多类型,可以是 int ,可以是 string及所有完全定义了 == 与 != 操作的类型。 一.map的赋值方式 1.先的声明再初始化最后赋值 1...阅读全文

博文 2017-10-19 16:00:01 yinzhengjie

GO 语言接口与结构体 - interface & struct

interface & struct 接口与结构体 以继承为特点的 OOP 只是编程世界的一种抽象方式,在 Golang 的世界里没有继承,只有组合和接口,并且是松散的接口结构,不强制声明实现接口,这看起来更符合 Java 之父 Gosling 的设想。 If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. 翻译过来就是:如果某个东西长得像鸭子,像鸭子一样游泳,像鸭子一样嘎嘎叫,那它就可以被看成是一只鸭子。 单一继承关系解决了 is-a 也就是定义问题,因此可以把子类当做父类来对待。但对于父类不同但又具有某些共同行为的数据,单一继承就不能解决了,C++ 采...阅读全文

博文 2019-08-02 22:32:40 坚果jimbowhy

Go语言类型转换库【github.com/demdxx/gocast】的用法

滥傺ikFIAHme砂隙及究涌滋 绽浇KPeyL9N3已卜讨跋敛恳 http://www.jxedt.com/wen/luxian/3174554859479367768.html?Y=5 http://www.jxedt.com/wen/xuefei/3174554460029386840.html?9=e http://www.jxedt.com/wen/qita/3174553148921741337.html?4=O http://www.jxedt.com/wen/qita/3174549014938124303.html?8=4 http://www.jxedt.com/wen/xuefei/3174550400002949143.html?6=6 烏檀wjuGbf6V壹涤炮撤鼻...阅读全文

博文 2016-11-04 16:00:01 zcatcx

关于《我为什么放弃Go语言》的讨论

CSDN 上有一篇文章 [《我为什么放弃Go语言》](http://blog.csdn.net/liigo/article/details/23699459),在 golang-china 讨论组引发了一些讨论,为了便于墙内 gopher 们阅读,选择了一些有价值的评论发在这里。(重点关注 minux 大神的回复) 刘鑫: 无所谓啦,本来就是个工具语言,没必要人人都去拜。对自己好用,就用实际行动来支持,这不比打嘴炮好多了。从来没有一门编程语言能让所有人都满意。何况人家文章里有些东西写的还是挺有道理。特别是社区的态度问题。去年我说某IDE的插件不能识别不可达的逻辑,一大群人出来教育我说go语言本来就这么设计的。只有巢鹏一个人的博客上写着这是go官方2009年就明明白白列出来的一个...阅读全文

深入Go语言 - 2 常量、变量、动态类型和静态类型

目录 [−] 常量变量变量声明简化静态类型和动态类型 本文介绍Go语言的常量和变量的语言细节。 常量 只有数值类型和字符串类型才可以作为常量。 数值类型包括 布尔类型、rune类型、各种整型、浮点类型、复数。 常量值既可以是数值类型的字面量,也可以是字符串字面量,以及常量的等价形式, 如: 常量表达式, 如 4 * 5 转换结果是常量, 如 int(10.0) 内建函数的返回值, 如unsafe.Sizeof、cap、len 复数、实数和虚数的应用 true和false赋值给bool类型的常量 内建的 iota 用变量赋值给常量是不允许的: 12var vs = "hello world"const s = vs //错误 常量的命名还是遵循前一篇文章的介绍,所有你看到一些"奇怪"的常量名不...阅读全文

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

golang笔记:unsupported driver -> Scan pair: -> *string

golang里,操作mysql数据库,使用查询语句的时候,一般的写法 rows, err := db.Query("SELECT name from table) if err != nil { return } for rows.Next() { var name string err = rows.Scan(&name) if err != nil { return } } 当查出来的字段有NULL的时候,就会报这样的错误unsupported driver -> Scan pair: -> *string 这又是由于Go语言对数据类型的严格限制。name的类型是string,所以只能接受string类型的值,而此处nil是为空的指针类型。最佳解决办法是——插入记录的时候不要...阅读全文

golang语法总结(八):类型零值、类型别名、类型转换

类型零值 变量声明为某种类型后的值就为该类型的零值,它不是空值。通常数值类型默认为0,bool为false,string为空字符串 类型别名 比如: type text stringfunc main() { var t text = "hello world" fmt.Println(t)} 类型转换 Go语言不存在隐式转换,必须显式转换,并且只能在两种相互兼容的类型间转换,转换示例: a := 3.14b := int(a)fmt.Println(b)var c int32 = 256var d = float64(c)fmt.Println(d...阅读全文

博文 2016-02-22 14:00:07 QQ245671051

golang http content_type

1.如果没有指定content_type的话,http包会查看文件的前512 byte,从而推测文件类型。 2.常用类型为: text/html 返回网页格式。text/plain 返回文本格式,也就说不会解析html。application/octet-stream 一般都是二进制格式,可用来下载。(这个有点复杂,不是很清楚) image/***audio/***video/**...阅读全文

博文 2015-06-17 20:17:44 rufidmx

golang 字典map

当在哈希表中查找某个与键值对应的元素值时,我们需要先把键值作为参数传给这个哈希表。哈希表会先用哈希函数(hash function)把键值转换为哈希值。  哈希值通常是一个无符号的整数。一个哈希表会持有一定数量的桶(bucket),也可称之为哈希桶,这些哈希桶会均匀地储存其所属哈希表收纳的那些键-元素对。  因此,哈希表会先用这个键的哈希值的低几位去定位到一个哈希桶,然后再去这个哈希桶中,查找这个键。由于键-元素对总是被捆绑在一起存储的,所以一旦找到了键,就一定能找到对应的元素。  随后,哈希表就会把对应的元素值作为结果返回。只要这个键-元素对存在于哈希表中就一定会被查找到,因为哈希表增、改、删键-元素对时候的映射过程,跟上面描述的一样。  也就是说,字典map不会独立存储任何键的值,但会独...阅读全文

博文 2018-09-27 23:34:42 one_zheng

golang 类型转换

1 import ( 2 "bytes" 3 "encoding/binary" 4 "encoding/gob" 5 "fmt" 6 ) 7 8 func str_to_byte(src string) []byte { 9 //strSlice := []string{src} 10 buffer := &bytes.Buffer{} 11 gob.NewEncoder(buffer).Encode(src) 12 return buffer.Bytes() 13 } 14 15 func uint64_to_byte(src uint64) []byte { 16 buf := make([]byte, 8) 17 binary.BigEndian.PutUint64(buf, src...阅读全文

博文 2018-06-02 17:30:00 chris-cp

golang入门篇-基础类型

golang有如下基本类型: 整数类型: int8、int16等等 浮点类型:float32、float64 布尔类型:bool 复数类型: complex64、complex128 字符串类型: string 字符类型: byte、rune 整数类型 整型转换 golang中的编译器不会做隐式的类型转换,int和int32是俩种不同的类型。 var value2 int32 value1 := 64 // value1将会被自动推导为 int类型 value2 = value1 // 编译错误 value2 = int32(value1) // 强制类型转换编译通过 在做强制类型转换时,需要注意数据长度被截短而发生的数据精度损失(比如将浮点数强制转为整数)和值溢出(值超过转换的目标类型的值...阅读全文

博文 2017-10-07 19:31:38 u010990172

Go:保留关键字及基本数据类型

1 命名规范 在Go中几乎所有的东西都是有名字或标识符的(类似于C家族语言),且它们是对大小写敏感的。相应的规则如下: 必须以字符开头(所有Unicode UTF-8中的字符 或 下划线“_”)后面可以跟0或多个字符或数字,如:x56, _x32等。不能以数字开头或系统保留关键字和操作符。如:1ab, case, a+b。下划线"_"本身在Go中是一个特殊的标识符,称为空标识符。可以代表任何其它的标识符,但是它对应的值会被忽略。所以仅能被作为占位符使用。 同时,在Go中也支持匿名,如匿名变量、自定类型和函数。 2 系统关键字或保留字 在Go中,为了简化代码编译过程中对代码的解析,其定义的保留关键字只有25个。详见如下: break default func interface select ...阅读全文

博文 2014-10-10 20:00:01 aaron_ye

不得不知道的golang知识点之nil

golang中的`nil`,很多人都误以为与Java、PHP等编程语言中的null一样。但是实际上Golang的niu复杂得多了,如果不信,那我们继续往下阅读。 `nil` 为预声明的标示符,定义在`builtin/builtin.go`, ``` // nil is a predeclared identifier representing the zero value for a // pointer, channel, func, interface, map, or slice type. // Type must be a pointer, channel, func, interface, map, or slice type var nil Type // Type is he...阅读全文

博文 2017-10-30 09:39:45 qiangmzsx