Go语言中文网 为您找到相关结果 7

go字符串截取笔记

当我在go语言编程过程中第一次碰到需要截取字符串的时候,首先想到的是 strings 包里面可能有相关方法~ 我还是太年轻了,这些年都被脚本语言惯坏了~ 好吧,只能自己搞了,思路也很清晰,把字符串转成字节数组,然后使用slice切片得到其中想要截取的一段,最后再通过 T() 强制类型转换还原成字符串,一开始比较简单: s := "abcdefg" s = string([]byte(s)[:3]) fmt.Println(s) //得到 "abc" 似乎简单啊,但如果碰到中文咋办?根据常识,一个中文字符肯定不止一个字节,难道我还得遍历每个字节,判断编码,判断ascii码范围?那也太麻烦了吧,当然如果必须这么处理的话,肯定人已经造过轮子,google一下定有收获。 幸运的是我不需要考虑那么多,...阅读全文

博文 2017-02-18 04:00:32 吾爱

设计模式-装饰者模式(Go语言描述)

什么是装饰者模式 好久没有更新设计模式系列的博客了, 今天我们来聊一聊装饰者模式, 用过java的同学肯定对装饰者模式非常熟悉,就算你不知道什么是装饰者模式这概念, 你也一定在代码中经常用到这个模式,为什么这么说呢? 大家都用过java中的流吧, 我们可以这样写: new BufferedOutputStream(new FileOutputStream()); 大家对这样的代码肯定很熟悉了, 用另外一个类包装一下另外一个类, 或方便了我们的使用, 或增强了功能. 不是说设计模式嘛, 怎么扯开流了… 其实java中这种io操作的代码正式装饰者模式的一种使用. 那它有什么特点呢? 理论上它们是可以无限包装的. 装饰者和被装饰者们有相同的超类型(super). 想要拓展功能无需修改原有的代码, ...阅读全文

博文 2016-04-07 10:00:04 qibin0506

golang的垃圾回收(GC)机制

请先阅读 golang的goroutine调度机制 然后再到这里 golang的垃圾回收采用的是 标记-清理(Mark-and-Sweep) 算法 就是先标记出需要回收的内存对象快,然后在清理掉; 在这里不介绍标记和清理的具体策略,只介绍 GC过程是怎么调度的以及stw相关 这个算法,会导致 stw (stop the world) 的问题,中断用户逻辑 触发GC机制 在申请内存的时候,检查当前当前已分配的内存是否大于上次GC后的内存的2倍,若是则触发(主GC线程为当前M) 监控线程发现上次GC的时间已经超过两分钟了,触发;将一个G任务放到全局G队列中去。(主GC线程为执行这个G任务的M) 每当触发的时候,在主GC线程中就会走如下的GC流程: stop the world,等待所有的M休眠;...阅读全文

博文 2018-12-05 16:34:55 Chole121

Golang的垃圾回收(GC)机制

载自https://blog.csdn.net/liangzhiyang/article/details/52670021请先阅读 golang的goroutine调度机制然后再到这里golang的垃圾回收采用的是 标记-清理(Mark-and-Sweep) 算法就是先标记出需要回收的内存对象快,然后在清理掉;在这里不介绍标记和清理的具体策略(可以参考https://lengzzz.com/note/gc-in-golang),只介绍 GC过程是怎么调度的以及stw相关这个算法,会导致 stw (stop the world)的问题,中断用户逻辑触发GC机制1. 在申请内存的时候,检查当前当前已分配的内存是否大于上次GC后的内存的2倍,若是则触发(主GC线程为当前M)2. 监控线程发现上次G...阅读全文

博文 2018-10-07 21:35:40 ck_god

经典算法:汉诺塔

学编程,学IT,算法也是必不可缺的,这一次给大家带来一个经典的递归算法题,汉诺塔。算是算法的入门小题目之一吧~ 视频教程 什么是汉诺塔? 我这里直接拉来一个图解释一下(挂了请联系我)就是这么一个东西了,把所有的圆盘从左边移动到右边,并且大的圆盘不能够压住小的。怎么才能完成呢? 规则理解了,开始钻牛角尖 先来看看只有一个圆盘的情况, 嗯 相当的简单 A--->C 就可以了 两个的情况呢? 也不难 A--->B A--->C B--->C 三个的话有点挑战了 大家自己推一推 好的 十个呢?就算想了半天弄好了,怎么让程序帮我们做呢?头大! 牛角尖钻完了,冷静分析 在我们每次完成之前的状态,都是把最大的圆盘放到了最右边,剩下的圆盘放到了中间。然后把中间的再都放到右边就好了 这道理就跟把大象装冰箱一样...阅读全文

博文 2018-11-02 12:34:46 蒋吉兆

如何使用hugo搭建个人博客(二):修改主题:颜色,字体,布局

上一篇博文中谈到了如何在本地使用hugo预览特定主题crisp,本文介绍主题的颜色,字体,布局的修改。 修改主题侧边栏颜色 crisp主题的侧边栏默认是白色,如果想改个颜色咋办? 到github仓库 https://github.com/penn201500/hugo-crisp-theme-for-blog/ 获取 hugo-crisp-theme-for-blog/mysite/themes/crisp/layouts/partials/criticalpath.html 文件,替换本地themes目录下的同名文件,如 E:\github_projects\my_blogs\mysite\themes\hugo-theme-crisp\layouts\partials\criticalp...阅读全文

博文 2017-09-19 06:07:14 justheretobe