<div style="font-weight: 400;">
<h1 class="clear">脑图</h1>
<h1 class="clear">go介绍</h1>
<h2 class="clear">指针</h2>
<ul>
<li>取地址</li>
<li>取值&</li>
</ul>
<p>函数里使用,参数是指针就可以修改指针的指向;函数不加就是值传递,把数据拷贝一份</p>
<h3 class="clear">跟C比</h3>
<h4 class="clear"> 符号</h4>
<p>C指针比较繁琐的在于指针运算
go语言没有指针运算。</p>
<h4 class="clear">& 符号</h4>
<p>go语音这个符号就是取地址
C/C++ 引用(别名)同时也是取地址符</p>
<h2 class="clear">函数</h2>
<p>函数是go语言的一等公民
不带的名就是指向函数的指针!!!</p>
<h2 class="clear">go并发</h2>
<p>java并发是线程
go并发是routine(协程)</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-2ad6083075284242.png" alt="1671954943710.png"></p>
<p>为什么协程快?</p>
<ul>
<li>不快:并不比线程池快;协程也是只用那几个线程,所以go的协程调优也是线程数量调优。(netty>go)</li>
<li>有些情况比线程快:起一万个协程要比1w个线程快。</li>
</ul>
<p>是否完全等同于线程池的任务?</p>
<ul>
<li>线程池的task,不具备协调能力</li>
<li>golong中可以用channel做(任务)协程协调;channel就是个阻塞队列(类似java的syncqueue)
<ul>
<li>在用户空间模拟了cpu切换</li>
</ul>
</li>
<li>执行完回收</li>
<li>golong中的异步(导出都是异步,但写法都是同步写法)</li>
<li>同步的写法实现异步操作(流行起来的原因,写起来简单)</li>
</ul>
<h1 class="clear">NEXT</h1>
<p>channel
同步sync wait mutex
Map slice channel函数传递
go没有切面编程(动态代理)
生态
没有泛型(目前)</p>
<h2 class="clear">go的内存模型GC</h2>
<p>电脑上每个应用都有自己的虚拟空间,对象放到虚拟空间page中,用到就放到内存page中;用不到直接在虚拟空间就干掉,这样就减少内存中移动对象的操作;这是go gc和javagc的差异;</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-b538d4e09a94070b.png" alt="1671958772766.png">
67 最大最想是32k,超出的是0,精确分配;67中是向上分配,比如 8k的空间要分配大小为5的对象,浪费3k!!67种默认都是span=8k,8k里方的对象个数随之对象线上变大,个数变小。</p>
<p>spans别称叫mspan</p>
<p>bitmap记录两个信息:
该位置有没有对象
该位置是不是已经扫描过了(垃圾回收算法)</p>
<p>!<img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-2a533f38d4bf0ff5.png" alt="1671959741439.png"></p>
<p>也会有碎片化问题,要把碎片整理出内存给新对象使用就要长时间stw(线程暂停)</p>
<p>go本来是为了替代c的,如果把泛型,aop等加进来反而会写起来复杂如java;不太好了。</p>
<p>go格式化:gofmt -w test.go</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-2a3d66e586ff7279.png" alt="1671977696218.png"></p>
<p>老方式GOPATH方式有vendor目录,现在用go.mod方式</p>
<p>beego脚手架:自动创建mvc工程目录,热部署,可以创建api工程(前后端分离),web工程(前后端不分离)</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-70616409d6138d46.png" alt="1672480010829.png"></p>
<p>iris的框架基于fasthttp:性能高不稳定</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-161ac684d21ce3f7.png" alt="1672479673257.png"></p>
<p>gin 和beego基于net http:beego大而全,gin自由</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-651c61e824d85526.png" alt="1672479864692.png"></p>
<p>总结</p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-a1f8d8ef9d7582f3.png" alt="1672480114839.png"></p>
<h1 class="clear">Gin</h1>
<h2 class="clear">Gin入门</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-0e8b76c666e3a426.png" alt="1672480397880.png"></p>
<h2 class="clear">gin的http请求与返回</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-ea6b21bea2e27278.png" alt="1672482366550.png"></p>
<h2 class="clear">参数的泛绑定</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-278c82ef6378641f.png" alt="1672490971951.png"></p>
<h2 class="clear">绑定静态文件</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-dbd43551bd5498b3.png" alt="1672491276530.png"></p>
<h2 class="clear">多种请求类型crud</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-f8a6755931f8925a.png" alt="1672491623365.png"></p>
<h2 class="clear">路由分组</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-4f3120a051857a2a.png" alt="1672492029235.png"></p>
<h2 class="clear">参数获取</h2>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-e3133140593d9458.png" alt="通过请求路径获参数"></p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-e7ee794694b99ca5.png" alt="queryString获取参数">
<img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-11eb17f11ba092ff.png" alt="postform获参"></p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-99810a69a98d686f.png" alt="query和form混合使用"></p>
<p><img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-a4809a4b4d84503d.png" alt="queryArray和QurryMap">
<img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-7a9fdc6b09e06aef.png" alt="postarray和map"></p>
<p>PYTHON
pip install –index-url http://mirrors.aliyun.com/pypi/simple/ –trusted-host mirrors.aliyun.com Image</p>
<h1 class="clear">引用</h1>
<h1 class="clear">社交</h1>
<p>每日都有工作和生活记录,赏一个
<img decoding="async" src="https://upload-images.jianshu.io/upload_images/21597556-3e0df2321bae5013.png" alt="收款码"></p>
</div><blockquote><p>本文使用 <a href="https://www.jianshu.com/p/5709df6fb58d" class="internal">文章同步助手</a> 同步</p></blockquote>
go语言学习
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...