- 博客(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
98
原创 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
124
原创 在函数中 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
138
原创 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
581
原创 Go基础:range
参考:https://blog.youkuaiyun.com/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
79
原创 beego代码阅读——反射笔记
/*参数c是个指针,可能指向各种类型的结构体,所以此时无法使用c所以总体思路就是:新申请一块内存,类型和c一模一样,并且把所需的value都拷贝过来用反射获取一个未知变量的类型和值 -> 据此New一个新的变量 -> 还原成原始变量(此时是空值)-> 逐个字段把所需值拷贝到新的内存涉及到的知识点:根据反射获取未知变量的属性,把反射对象还原成原始数据,修改反射类型字段值参考:https://ehlxr.me/2018/01/26/golang-reflect/*/fun.
2020-09-09 15:00:58
198
原创 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
1746
原创 用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
627
原创 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
2192
Linux AmpLayer播放器设计规范
2018-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人