分类标签归档:Golang

Golang_06_并发及反射


单元测试

基本介绍

Go中自带轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试。testing框架与其他测试框架类似,可以基于这个框架写相应函数的测试用例,也可以基于该框架写相应的压力测试用例。通过单元测试,可以实现:

  1. 确保每个函数是可运行的,且运行结果正确;
  2. 确保写出来的代码性能;
  3. 单元测试能及时的发现程序设计或实现的逻辑错误;
  4. 性能测试的重点在于发现程序设计上的一些问题,使程序能接受高并发的情况;

快速入门总结

快速入门案例代码见坚果云/home/daihaorui/桌面/MyNutcloud/wlhiot_manage/goproject/src/go

Read more

Golang_05_项目及文件


通用

项目开发流程说明

程序框架图

当收到业务模块时,分析该模块有多少个文件(类),和各个类之间的调用关系,程序员需要根据架构师要求,进行分层。采用MVC架构,具体百度。

面向对象

将记账软件功能封装到一个结构体中,调用该结构体的方法,来实现记账,显示明细等功能,结构体的名称为FamilyAccount。通过在main方法中,创建一个结构体实例,实现记账功能。

客户管理系统

程序框架图

功能实现-显示主菜单和退出程序

  1. [目录结构]创建customer主程序目录,在内依次构建customer,customerService,customerView文件
  2. [customerModel]根据实

Read more

Golang_04_面向对象


结构体struct

https://book.itsfun.top/gopl-zh/ch4/ch4-04.html

在Go中,没有传统意义上的对象的概念。一个结构体就是一个对象,结构体中包含了不同的数据类型组成一个对象。结构体属于值类型,遵循值拷贝

field

  1. field的类型可以为基本类型、数组或引用类型;
  2. 创建出来的结构体默认有零值,即
  3. 布尔类型为false,数值类型为0,字符串类型为""
  4. 数组类型的默认值和它的元素类型相关,如score[3]int则为[0, 0, 0]
  5. 指针、slice和map的零值为nil,即还未分配空间
  6. 不同结构体变量的字段相互独立,因为结构体属于值类型
ty

Read more

Golang_03_函数


函数

为完成某一功能的程序指令(语句)的集合,称为函数

调用机制

  1. 在调用一个函数时,会为该函数分配一个新的空间,编译器会通过自身的处理让这个新的空间和其他的栈空间区分开来;
  2. 每个函数对应的栈中,数据空间是独立的,不会混淆;
  3. 当一个函数执行完毕后,程序会销毁这个函数对应的栈空间;

return语句

  1. 如果返回多个值,在接收时,可以用_符号表示占位忽略;
func [函数名] ([形参列表]) ([返回值列表]) {  // 基本语法    
    [指定语句]    
    return [返回值列表]  // 当函数有return语句时,将结果返回给调用者 
}

递归调用

函数

Read more

Golang_02_使用基础


基础功能实现

从控制台接受用户信息

功能同Python的input函数,但在Go中是通过fmt.Scanln或fmt.Scanf来实现

func main(){    
    var name string    
    var age byte    
    fmt.Println("please input name,age")    
    fmt.Scanf("%s %d",&name,&age)    
    fmt.Printf("your name = %v ,age = %v",name,ag

Read more

Golang_01_介绍及基础


GO语言的特点

  1. 从C语言中继承了较多理念,包括表达式语法,控制结构,基础数据结构,调用参数传值,指针等等;
  2. 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在;
  3. 垃圾回收机制,内存自动回收;
  4. 天然并发。语言层面支持并发;goroutine,轻量级线程,可实现大并发处理,高效利用多核;基于CPS并发模型实现;
  5. 吸收了管道通信机制,形成Go语言特有的管道channel。通过管道channel可以实现不同的goroute之间相互通信;
  6. 函数支持返回多个值;
  7. 新的创新,例如切片slice,延时执行defer等;

开发环境(software Development K

Read more