02 2020 档案

摘要:定义一个中间件类 来计算http请求的时间 public class ResponseTimeMiddleware { // Name of the Response Header, Custom Headers starts with "X-" private const string RESPO 阅读全文
posted @ 2020-02-20 14:13 低调码农哥! 阅读(861) 评论(0) 推荐(0) 编辑
摘要:合适地使用可变参数,可以让代码简单易用,尤其是输入输出类函数,比如日志函数等。 本文主要从4个实例介绍可变参数用法。 程序代码: package main import ( "bytes" "fmt" ) /****************** 1 **************** 定义可参变数函数 阅读全文
posted @ 2020-02-16 23:08 低调码农哥! 阅读(2499) 评论(0) 推荐(0) 编辑
摘要:其他类型能够实现接口,函数也可以,本节将对结构体与函数实现接口的过程进行对比。 完整的代码: package main import "fmt" /* 这个接口需要实现 Call() 方法,调用时会传入一个 interface{} 类型的变量,这种类型的变量表示任意类型的值。 */ type Inv 阅读全文
posted @ 2020-02-16 22:03 低调码农哥! 阅读(2188) 评论(0) 推荐(0) 编辑
摘要:Go语言支持匿名函数,即在需要使用函数时再定义函数,匿名函数没有函数名只有函数体,函数可以作为一种类型被赋值给函数类型的变量,匿名函数也往往以变量方式传递,这与C语言的回调函数比较类似,不同的是,Go语言支持随时在代码里定义匿名函数。 程序代码: package main import "fmt" 阅读全文
posted @ 2020-02-15 16:34 低调码农哥! 阅读(623) 评论(1) 推荐(0) 编辑
摘要:使用 SQL 语言从数据库中获取数据时,可以对原始数据进行排序(sort by)、分组(group by)和去重(distinct)等操作,SQL 将数据的操作与遍历过程作为两个部分进行隔离,这样操作和遍历过程就可以各自独立地进行设计,这就是常见的数据与操作分离的设计。对数据的操作进行多步骤的处理被 阅读全文
posted @ 2020-02-15 15:42 低调码农哥! 阅读(547) 评论(0) 推荐(0) 编辑
摘要:Go语言中传入与返回参数在调用和返回时都使用值传递,这里需要注意的是指针、切片和 map 等引用型对象在参数传递中不会发生复制,而是将指针进行复制,类似于创建一次引用。 程序实例: package main import "fmt" type Data struct { complax []int 阅读全文
posted @ 2020-02-14 12:13 低调码农哥! 阅读(827) 评论(0) 推荐(0) 编辑
摘要:使用一个数值表示时间中的“秒”值,然后使用 resolveTime() 函数将传入的秒数转换为天、小时和分钟等时间单位。 package main import "fmt" /* 时间常量 */ const ( //定义每分钟的秒数 SecondsPerMinute = 60 //定义每小时的秒数 阅读全文
posted @ 2020-02-13 22:29 低调码农哥! 阅读(4404) 评论(0) 推荐(0) 编辑
摘要:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找算法的前提是传入的序列是有序的(降序或升序),并且有一个目标值。二分查找的核心思想是将 n 个元素分成大致相等的两部分,取中间值 a[n/2] 与 x 做比较,如果 x=a[n/2],则找到 x,算法中止, 阅读全文
posted @ 2020-02-12 16:17 低调码农哥! 阅读(1713) 评论(0) 推荐(0) 编辑
摘要:package main import "fmt" func main() { array := [...]int32{3, 1, 9, 29, 15} n := len(array) fmt.Println("未排序前:", array) /* 冒泡排序 */ for i := 0; i <= n 阅读全文
posted @ 2020-02-06 00:17 低调码农哥! 阅读(892) 评论(1) 推荐(0) 编辑
摘要:基本写法 Go语言改进了 switch 的语法设计,case 与 case 之间是独立的代码块,不需要通过 break 语句跳出当前 case 代码块以避免执行到下一行,示例代码如下: var str = "hello" //基本用法 switch str { case "good": fmt.Pr 阅读全文
posted @ 2020-02-05 21:37 低调码农哥! 阅读(9913) 评论(0) 推荐(0) 编辑
摘要:Go语言中 new 和 make 是两个内置函数,主要用来创建并分配类型的内存。在我们定义变量的时候,可能会觉得有点迷惑,不知道应该使用哪个函数来声明变量,其实他们的规则很简单,new 只分配内存,而 make 只能用于 slice、map 和 channel 的初始化 new 在Go语言中,new 阅读全文
posted @ 2020-02-04 23:05 低调码农哥! 阅读(984) 评论(0) 推荐(0) 编辑
摘要:nil 标识符是不能比较的 package main import "fmt" func main() { fmt.Println(nil == nil) } .\nil.go:6:18: invalid operation: nil == nil (operator == not defined 阅读全文
posted @ 2020-02-04 18:08 低调码农哥! 阅读(525) 评论(0) 推荐(0) 编辑
摘要:在Go语言中,列表使用 container/list 包来实现,内部的实现原理是双链表,列表能够高效地进行任意位置的元素插入和删除操作。 初始化列表 list 的初始化有两种方法:分别是使用 New() 函数和 var 关键字声明,两种方法的初始化效果都是一致的。1) 通过 container/li 阅读全文
posted @ 2020-02-03 22:24 低调码农哥! 阅读(4199) 评论(0) 推荐(0) 编辑
摘要:Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 需要并发读写时,一般的做法是加锁,但这样性能并不高,Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是以语言原生形态提供,而是在 sync 包下的特殊结构 阅读全文
posted @ 2020-02-03 10:59 低调码农哥! 阅读(1700) 评论(0) 推荐(0) 编辑
摘要:使用 delete() 函数从 map 中删除键值对 使用 delete() 内建函数从 map 中删除一组键值对,delete() 函数的格式如下: delete(map, 键) 其中 map 为要删除的 map 实例,键为要删除的 map 中键值对的键。 package main import 阅读全文
posted @ 2020-02-03 10:05 低调码农哥! 阅读(10925) 评论(0) 推荐(0) 编辑
摘要:map 的遍历过程使用 for range 循环完成,代码如下: package main import "fmt" func main() { mapNum := make(map[string]int) mapNum["key1"] = 1 mapNum["key2"] = 2 mapNum[" 阅读全文
posted @ 2020-02-03 09:52 低调码农哥! 阅读(3695) 评论(0) 推荐(0) 编辑
摘要:Go语言中 map 是一种特殊的数据结构,一种元素对(pair)的无序集合,pair 对应一个 key(索引)和一个 value(值),所以这个结构也称为关联数组或字典,这是一种能够快速寻找值的理想结构,给定 key,就可以迅速找到对应的 value。map 这种数据结构在其他编程语言中也称为字典( 阅读全文
posted @ 2020-02-02 23:43 低调码农哥! 阅读(676) 评论(0) 推荐(0) 编辑
摘要:Go语言有个特殊的关键字 range,它可以配合关键字 for 来迭代切片里的每一个元素。当迭代切片时,关键字 range 会返回两个值,第一个值是当前迭代到的索引位置,第二个值是该位置对应元素值的一份副本,如下图所示 需要强调的是,range 返回的是每个元素的副本,而不是直接返回对该元素的引用, 阅读全文
posted @ 2020-02-02 18:36 低调码农哥! 阅读(2166) 评论(0) 推荐(0) 编辑
摘要:Go语言的内建函数 append() 可以为切片动态添加元素。不过需要注意的是,在使用 append() 函数为切片动态添加元素时,如果空间不足以容纳足够多的元素,切片就会进行“扩容”,此时新切片的长度会发生改变。 程序代码 package main import "fmt" func main() 阅读全文
posted @ 2020-02-02 12:14 低调码农哥! 阅读(4274) 评论(1) 推荐(0) 编辑
摘要:切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型(因此更类似于 C/C++ 中的数组类型,或者 Python 中的 list 类型),这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集,需要注意的是,终止索引标识的项不包括在切片内。 Go语言中切片的内部结构包含 阅读全文
posted @ 2020-02-01 17:22 低调码农哥! 阅读(1231) 评论(0) 推荐(0) 编辑
摘要:运行源码 package main // 导入 fmt 包,打印字符串是需要用到 import "fmt" func main() { //【示例 1】声明二维数组 fmt.Println("声明二维数组") //声明二维数组,两个维度长度分别为4和2 var array [4][2]int // 阅读全文
posted @ 2020-02-01 15:10 低调码农哥! 阅读(1203) 评论(0) 推荐(0) 编辑
摘要:程序源码 package main import ( "fmt" // 导入 fmt 包,打印字符串是需要用到 ) func main() { // 声明 main 主函数 var a [3]int // 定义三个整数的数组 fmt.Println(a[0]) // 打印第一个元素 fmt.Prin 阅读全文
posted @ 2020-02-01 13:58 低调码农哥! 阅读(925) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示