目录Golang - 异常处理1. 抛异常和处理异常2. 返回异常Golang - 异常处理1. 抛异常和处理异常package mainimport "fmt"//系统抛异常
func test0111() {a := [5]int{0, 1, 2, 3, 4}a[1] = 123//a[10] =456index := 10//index out of rangea[index] = 456
}//自己抛
func test222() {getCircleArea(-5)
}func getCircleArea(radius float32) (area float32) {if radius < 0 {//自己抛异常panic("您的智商已下线,半径不能为负数")}re...
安装Golang:1. 下载安装包https://golang.google.cn/dl/我这里使用压缩包,下载后解压到D盘(自定义)。2. 添加环境变量:把解压后的bin目录添加到环境变量中 第一个程序:1. 新建一个test.go文件,编写如下内容:package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}2. 进入 cmd 运行 go run test.go ,就会输出:Hello, World! 到此,Golang的第一个程序就完成了! 原文:https://www.cnblogs.com/delav/p/993...
Golang是最好的编程语言原文:http://www.cnblogs.com/lidashuang/p/3535128.html
本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”,即介绍使用Golang开发 时会使用到的测试技术(主要针对单元测试),包括基本技术、高级技术(并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等)等,感觉总结的很全面,这里整理记录下来,希望能给大家带来帮助。原Slide访问需要自己搭梯子。另外这里也要吐槽一 下:Golang官方站的slide都是以...
https://nanxiao.gitbooks.io/golang-101-hacks/content/posts/select-operation.html---------------------------------------------------------------------------------Select operationGo‘s select operation looks similar to switch, but it‘s dedicated to poll send and receive operations channels. Check the following example:package mainimport ("fmt""time"
)func main() {ch1 := make(chan int)ch2 := make(ch...
原文:https://www.cnblogs.com/CRayFish07/p/11580043.html
单元测试是质量保证十分重要的一环,好的单元测试不仅能及时地发现问题,更能够方便地调试,提高生产效率,所以很多人认为写单元测试是需要额外的时间,会降低生产效率,是对单元测试最大的偏见和误解go 语言原生支持了单元测试,使用上非常简单,测试代码只需要放到以 _test.go 结尾的文件中即可。golang的测试分为单元测试和性能测试,单元测试的测试用例以 Test 开头,性能测试以 Benchmark 开头举个例子实现排列组合函数对应的...
本文记载下了golang插件的用法, 原文:https://code.tutsplus.com/tutorials/writing-plugins-in-go--cms-29101 这个例子使用了两个排序: 快速排序和冒泡排序,不追求算法的高效,只为了说明插件的生成和使用。而且只在linux下,build和运行.(windows环境没有测试过, 原文在windows下要使用docker)目录:plugins├── bubble_sort│ └── bubble_sort_plugin.go 冒泡排序├── bubble_sort_plugin.so 编译后的插件...
学习golang难免需要分析源码包中一些实现,下面就来说说container/heap包的源码 heap的实现使用到了小根堆,下面先对堆做个简单说明1. 堆概念 堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。 最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键值中最大者。 最小堆:根结点的键值是所有堆结点键值中最小者。2. heap 树的最小元素...
1package main2 3import (4"fmt" 5"go.matrix-go1" //比较有名的关于Matrix在golang中的方法库 6"strings" 7)8 9func main() {
1011//matrix12 s := `[123;456]`
13//用数组字符串生成matrix14 a, err := matrix.ParseMatlab(s)
1516if err != nil {
17 fmt.Println("?", err)
18 }
1920//修改值21 a.Set(0, 0, 50)
22//给定行列位置点的值23 fmt.Println(a.Get(0, 0))
24//50
2526//列值27 fmt....
网络协议里面,很可能遇到自定义的封包,对应到c里面的是typedef struct _PackageHeader
{int headerLen;int timeStamp;short cmd
};为了保证单字节对齐,可以加上编译选项#pragma pack(1) 可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下package mainimport ("encoding/binary""fmt"
)type TestStruct struct {a uint32b int8
}func main() {var testObject TestStructsize := binary.Size(testObject)f...
碎碎念不能再经典的排序算法,说到排序算法大部分可能第一印象就是它了吧。记得大学时老师还花了一节课的时间进行详细解释。
原理冒泡算法(bubble sort) 是一种很简单的交换排序。每轮都从第一个元素开始,依次将较大值向后交换一位,直至整个队列有序。复杂度和其他低效排序算法一样,平均时间复杂度是O(n^2)。最好的情况就是原队列就是排列好的数组,这个时候时间复杂度就是O(n)。空间复杂度为O(1),用于交换。按顺序通过比较排序...
最近因为要用最一个简易网盘,主要功能是对接企业已有的ftp服务器和smb服务器。这篇博客主要是讲golang对接ftp服务器go get github.com/dutchcoders/goftp使用的是一个荷兰开发者作为主导的包,当时主要是因为有一个博主在CSDN上分享过这个包的使用方法,所以当时就去看了下这个包的源码。1.连接goftp.Connect(connConfig)
// connConfig是地址配置,ip:端口的一个字符串,如:localhost:2121这个方法执行过之后会返回一个ftp连接对...
时间操作Time包获取当前时间 t := time.Now()fmt.Printf("%T\n", t) //time.Timefmt.Println(t) //2019-07-08 15:23:55.1114609 +0800 DST m=+0.000192401
获取指定的时间 t := time.Date(2009, 7, 15, 16, 30, 28, 0, time.Local)fmt.Println(t) //2009-07-15 16:30:28 +0800 DST
时间转字符串 t := time.Date(2009, 7, 15, 16, 30, 28, 0, time.Local)s1 := t.Format("2006年1月2日 15:04:05")...
安装的过程中报错 :package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)被长城墙了,您可以这这么操作:(参看 http://www.fecshop.com/topic/805)1 cd ~/go/src
2 mkdir -p golang.org/x
3 cd golang.org/x
4 git clone https://github.com/golang/sys.git参考:https://blog.csdn.net/weixin...