
go语言
JoeySheng
这个作者很懒,什么都没留下…
展开
-
Go语言编程(一)之Go语言特性
Go语言特性自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程反射语言交互性原创 2016-08-02 22:30:25 · 713 阅读 · 0 评论 -
Go语言编程(十四)之可见性
Go语言对关键字的增加非常吝啬,其中没有private、protected、public这样的关键字。要使某个符号对其他包(package)可见(即可以访问),需要将该符号定义为以大写字母开头,如:type Rect struct { X, Y float64 Width, Height float64}这样,Rect类型的成员变量就全部被导出了,可以被所有其他引用了Rec原创 2016-08-09 16:18:38 · 1561 阅读 · 0 评论 -
Go语言编程(十三)之匿名组合
确切的说,Go语言也提供了继承,但是采用了组合的文法,所以我们将其称为匿名组合:type Base struct { Name string}func (base *Base) Foo() {...}func (base *Base) Bar() {...}type Foo struct { Base ...}func (foo *Fo原创 2016-08-09 14:45:22 · 927 阅读 · 0 评论 -
Go语言编程(十二)之类型系统初始化
在定义了Rect类型后,该如何创建并初始化Rect类型的对象实例呢?这可以通过如下几种方法实现:rect1 := new(Rect)rect2 := &Rect{}rect3 := &Rect{0, 0, 100, 200}rect4 := &Rect{width: 100, height: 200}在Go语言中,未进行显式初始化的变量都会被初始化为该类型的零值,例如boo原创 2016-08-09 14:30:41 · 831 阅读 · 0 评论 -
Go语言编程(十一)之类型系统
类型系统type system 类型系统是指一个语言的类型体系结构。一个典型的类型系统通常包含如下基本内容: 基础类型,如byte、int、bool、float等 复合类型,如数组、结构体、指针等 可以指向任意对象的类型(Any类型) 值语义和引用语义 面向对象,即所有具备面向对象特征(比如成员方法)的类型 接口 类型系统描述的是原创 2016-08-09 14:23:24 · 800 阅读 · 0 评论 -
Go语言编程(十)之面向对象编程
之前文章介绍了Go语言顺序编程的相关特性,很多人说Go语言是更好的C语言,接下来的篇章,我们将介绍Go语言对于面向对象思想的支持。 Go语言并没有沿袭传统面向对象编程中的诸多概念,比如继承、虚函数、构造函数和析构函数、隐藏的this指针等。Go语言对面向对象编程的支持是语言类型系统中的天然组成部分。整个类型系统通过接口串联。原创 2016-08-08 15:47:57 · 800 阅读 · 0 评论 -
Go语言编程(九)之错误处理
错误处理是任何编程语言都需要考虑的一个重要话题。error接口 Go语言引入了一个关于错误处理的标准模式,即error接口,该接口的定义如下:type error interface { Error() string}对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,将error作为多种返回值中的最后一个,但这并非强制要求:func原创 2016-08-08 14:07:50 · 887 阅读 · 0 评论 -
Go语言编程(八)之函数
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。原创 2016-08-08 11:14:48 · 934 阅读 · 0 评论 -
Go语言编程(七)之流程控制
程序设计语言的流程控制语句,用于设定计算执行的次序,建立程序的逻辑结构。可以说,流程控制语句是整个程序的骨架。 从根本上说,流程控制只是为了控制程序语句的执行顺序,一般需要与各种条件配合,因此,在各种流程中,会加入条件判断语句。流程控制语句一般起以下3个作用: 选择,即根据条件跳转到不同的执行序列; 循环,即根据条件反复执行某个序列,当然每一次循环执行的输入输出可能会发生变原创 2016-08-08 10:49:13 · 719 阅读 · 0 评论 -
Go语言编程(六)之类型
布尔类型:bool整型:int8 byte int16 int uint uintptr浮点类型:float32 float64复数类型:complex64 complex128字符串:string字符类型:rune错误类型:error此外,Go语言也支持以下这些复合类型指针(pointer)数组(array)切片(slice)字典原创 2016-08-05 15:13:31 · 324 阅读 · 0 评论 -
Go语言编程(五)之常量
在Go语言中,常量是指编译期间就已知且不可改变的值。常量可以是数值类型(包括整型、浮点型和复数类型)、布尔类型、字符串类型等。字面常量是指程序中硬编码的常量。Go语言的字面常量是无类型的。只要这个常量在相应类型的值域范围内,就可以作为该类型的常量。常量定义通过const关键字,可以给字面常量指定一个友好的名字:const Pi float64 = 3.1415926cons原创 2016-08-05 14:58:31 · 596 阅读 · 0 评论 -
Go语言编程(四)之变量
变量相当于对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。变量声明 Go语言中使用var关键字声明变量,而类型信息放在变量名之后。变量声明不需要使用分号作为结束符。示例如下var v1 intvar v2 stringvar v3 [10]int // 数组var v4 []原创 2016-08-05 11:49:14 · 390 阅读 · 0 评论 -
Go语言编程(三)之过过瘾
开发一个基于命令行的计算器程序。工程下载地址如下:https://github.com/JoeySheng/calcproj.git编译过程:1. 为了能够构建这个工程,需要先把这个工程的根目录加入到环境变量GOPATH中。假设calcproj目录位于~/go下,则应编辑~/.bash_profile文件,并添加下面这行代码: export GOPATH=~/go/calcp原创 2016-08-05 09:55:32 · 480 阅读 · 0 评论 -
Go语言编程(二)之编译环境
第一个Go程序代码清单 hello.gopackage mainimport "fmt" // 我们需要使用fmt包中的Println()函数func main() { fmt.Println("Hello, world.");}原创 2016-08-03 23:41:52 · 624 阅读 · 0 评论 -
Go语言编程(十五)之接口
接口在Go语言有着至关重要的地位。如果说goroutine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道极为亮丽的风景,那么接口是Go语言整个类型系统的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。 Go语言在编程哲学上是变革派,而不是改良派。这不是因为Go语言有goroutine和channel,而更重要的是因为Go语言的类型系原创 2016-08-09 16:28:15 · 911 阅读 · 0 评论