自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 PHP JSON

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); $en_ret = json_encode($arr); echo $e

2021-02-05 12:30:52 68

原创 php递归调用流程分析

<?php function loop($x, $key=false){ static $i = 0; echo $i; echo "<br>"; $i++; if($i<10){ loop($x); } else{ echo "large than 10"; echo "<br>"; } if ($key){ echo "key is true"; .

2021-02-05 09:59:11 95

原创 在函数中 unset() 一个通过引用传递的变量

php官方文档描述:如果在函数中unset()一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用unset()之前一样的值。<?phpfunction foo(&$bar) { unset($bar); $bar = "blah";} $bar = 'something';echo "$bar\n"; foo($bar);echo "$bar\n";?>以上代码输出:somethingsomething...

2021-02-03 17:40:22 106

原创 go语言中指向切片的地址 - 指针的指针应用场景

今天看代码时一直不解为什么tags本身就是个切片,为啥要传给&tags给Findfunc GetTags(pageNum int, pageSize int, maps interface {}) (tags []Tag) { db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&tags) return}只穿tags进去行不行?写代码验证下:func test(out *[]int) { *out

2020-12-08 16:03:05 528

原创 Go基础:range

参考:https://blog.csdn.net/fly910905/article/details/104438786for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下: for key, value := range oldMap { newMap[key] = value } 1st value 2nd value string index s[index] uni...

2020-09-09 15:48:18 48

原创 beego代码阅读——反射笔记

/*参数c是个指针,可能指向各种类型的结构体,所以此时无法使用c所以总体思路就是:新申请一块内存,类型和c一模一样,并且把所需的value都拷贝过来用反射获取一个未知变量的类型和值 -> 据此New一个新的变量 -> 还原成原始变量(此时是空值)-> 逐个字段把所需值拷贝到新的内存涉及到的知识点:根据反射获取未知变量的属性,把反射对象还原成原始数据,修改反射类型字段值参考:https://ehlxr.me/2018/01/26/golang-reflect/*/fun.

2020-09-09 15:00:58 162

原创 reflect.Indirect(v).Type()和reflect.TypeOf(u)的区别

最近看beego源码,看到一段反射的代码想不通为啥作者写的这么复杂func (p *ControllerRegister) addWithMethodParams(pattern string, c ControllerInterface, methodParams []*param.MethodParam, mappingMethods ...string) { reflectVal := reflect.ValueOf(c) t := reflect.Indirect(reflectVal).

2020-09-09 10:51:16 1570

原创 用select对channel进行多路复用

先看代码:func main() { ch := make(chan int, 1) for i := 0; i < 10; i++ { select { case x := <-ch: fmt.Println(x) case ch <- i: fmt.Println("--", i) } }}为什么输出0 2 4 8?-- 00-- 22-- 44-- 66-- 88ch的buffer size是1,这个通道的状态要

2020-07-01 16:08:14 581

原创 gopl 8.5章节wg.Wait()为什么要放在goroutine内部

wg.Wait()在goroutine内部// makeThumbnails6 makes thumbnails for each file received from the channel.// It returns the number of bytes occupied by the files it creates.func makeThumbnails6(filenames <-chan string) int64 { sizes := make(chan int64)

2020-06-29 21:25:34 2117

Linux AmpLayer播放器设计规范

Linux下AmpLayer播放器的设计规范,涵盖播放器基本结构图,AMCODEC和PLAYER相关的数据结构和接口,外接输入库和外接控制器接口。

2018-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除