随笔分类 - 08.Go基础
摘要:[astaxie] [基础]GO搭建一个简单的Web服务器 [astaxie] Go如何使得Web工作 [astaxie] Go 的 Http 包详解 [叶剑峰] Go语言_HTTP包 [叶剑峰] 使用Golang 搭建http web服务器 [叶剑峰] Golang Http Server源码阅读
阅读全文
摘要:一、基本类型 清晰完备的预定义基础类型,使得开发跨平台应用时无须过多考虑符合和长度差异。 支持八进制、十进制以及科学计数法。标准库 math 定义了各数字类型的取值范围。 输出: 标准库 strconv 可在不同进制(字符串)间转换。 输出: 使用浮点数时,须注意小数位的有效精度,相关细节可参考 I
阅读全文
摘要:by sheepbao 主要大概介绍go语言的历史和特性,简单的入门。 来历 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目。在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括庞大的分布式集群,大牛觉得很闹心,后来c++委员
阅读全文
摘要:一、定义 方法 是与对象实例绑定的特殊函数。 方法 是面向对象编程的基本概念,用于维护和展示对象的自身状态。对象是内敛的,每个实例都有各自不同的独立特征,以 属性 和 方法 来暴露对外通信接口。普通函数则专注于算法流程,通过接收参数来完成特定逻辑运算,并返回最终结果。换句话说,方法是有关联状态的,而
阅读全文
摘要:一、类型(Type) 反射(reflect)让我们能在运行期探知对象的类型信息和内存结构,这从一定程度上弥(mi)补了静态语言在动态行为上的不足。同时,反射还是实现元编程的重要手段。 和 C 数据结构一样,Go 对象头部并没有类型指针,通过其自身是无法在运行期获知任何类型相关信息的。反射操作所需要的
阅读全文
摘要:上一篇文章 说到了 Golang 中的反射的一些基本规则,重点就是文章中最后的三点,但是这篇文章并没有说如何在反射中调用函数和方法,这就是接下来要说的。 反射中调用 函数 众所周知,Golang 中的函数是可以像普通的 int、float 等类型变量那样作为值的,例如: prints: 既然函数可以
阅读全文
摘要:类型 和 接口 由于反射是基于类型系统(type system)的,所以先简单了解一下类型系统。 首先 Golang 是一种静态类型的语言,在编译时每一个变量都有一个类型对应,例如:int, floate32, []byte, *MyType 等等。如果我们这样声明: 上面的 i 是 int 类型的
阅读全文
摘要:GOPATH 环境变量用于指定这样一些目录:除 $GOROOT 之外的包含 Go 项目源代码和二进制文件的目录。go install 和 go 工具会用到 GOPATH:作为编译后二进制的存放目的地 和 import 包时的搜索路径。 GOPATH 是一个路径列表,也就是可以同时指定多个目录。多个目
阅读全文
摘要:项目目录结构如何组织,一般语言都是没有规定。但 Go 语言这方面做了规定,这样可以保持一致性 1、一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录: 其中,bin存放编译后的可执行文件;pkg 存放编译后的包文件;src 存放项目源文件。一般,bin 和 pkg 目录可以不创建,go
阅读全文
摘要:有时候 go get 比较慢,可以考虑用迅雷等下载工具下载下来,然后再本地安装, 如:code.google.com/p/go.net/websocket,如何安装这些离线包? 先在你的 GOPATH 目录(如果不懂 GOPATH,请先弄懂)下,创建目录 src: 复制 code.google.co
阅读全文
摘要:字典是一种内置的数据结构,用来保存 键值对 的 无序集合。 (1)字典的创建 1) make(map[KeyType]ValueType, initialCapacity) 2) make(map[KeyType]ValueType) 3) map[KeyType]ValueType{} 4) ma
阅读全文
摘要:一、数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列。 (1)数组的创建 数组有 3 种创建方式: 1) [length]Type 2) [length]Type{value1, value2, ... , valueN} 3) [...]Type{value1, valu
阅读全文
摘要:以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File -> New Project -> 选择“Go” 特别注意: 新建 Go项目时,一定要通过上述方式建立,而不能通过 “直
阅读全文
摘要:变参 本质上就是一个切片。只能接收一个或多个同类型参数,且 必须放在参数列表的 尾部。 输出: 将切片作为变参时,须进行 展开操作(后面加“...”)。如果是数组,先将其转换为切片。 既然变参是切片,那么参数复制的仅是切片自身,并不包括底层数组,也因此可修改原数据。如果需要,可以用内置函数 copy
阅读全文
摘要:先看一个示例: 1、目录结构 bin pkg src pk1 pk2 function1.go function2.go index.go 2、function1.go 文件内容: 3、function2.go 文件内容: 4、index.go 文件内容 5、运行 index.go,输出: func
阅读全文
摘要:Go变量 初始化 对 复合类型(数组、切片、字典、结构体)变量的初始化是,有一些语法限制: 1、初始化表达式必须包含类型标签; 2、左花括号必须在类型尾部,不能另起一行; 3、多个成员初始值以逗号分隔; 4、允许多行,但每行须以逗号 或 右花括号结束; 正确示例: 错误示例:
阅读全文
摘要:1、谷歌官方维护了一个基于go语言的开源项目列表:https://github.com/golang/go/wiki/Projects 2、[知乎网] 有哪些值得学习的 Go 语言开源项目? 3、[知乎用户:hack stoic] 看过 awesome-go 项目, 汇总了很多 go 开源项目。 但
阅读全文
摘要:Go template包下面有两个函数可以创建模板实例 首先要说的是每一个template内部可以存储多个模板,而且每个模板必须对应一个独立的名字。 两个的不同点在于: 1、使用 New() 在创建时就为其添加一个模板名称,并且执行 t.Execute() 会默认去寻找该名称进行数据融合; 2、使用
阅读全文
摘要:Package builtin import "builtin" Overview Index Overview ▾ Package builtin provides documentation for Go's predeclared identifiers. The items document
阅读全文
摘要:这一章我们主要介绍了Go语言的一些语法,通过语法我们可以发现Go是多么的简单,只有二十五个关键字。让我们再来回顾一下这些关键字都是用来干什么的。 break default func interface select case defer go map struct chan else goto p
阅读全文

浙公网安备 33010602011771号