Golang 正则表达式使用小结
golang Regexp主要提供如下正则所表示的16个方法: Find(All)?(String)?(Submatch)?(Index)? 若带All,该方法返回一个所有递进匹配结果的slice;该方法需要额外传一个整数n,若n>=0,至多返回n个匹配或子匹配,若x<0,返回全部。 若带String,该方法传入的参数需是string,否则为字节slice,返回结果也为对应的string。
阅读更多golang Regexp主要提供如下正则所表示的16个方法: Find(All)?(String)?(Submatch)?(Index)? 若带All,该方法返回一个所有递进匹配结果的slice;该方法需要额外传一个整数n,若n>=0,至多返回n个匹配或子匹配,若x<0,返回全部。 若带String,该方法传入的参数需是string,否则为字节slice,返回结果也为对应的string。
阅读更多worker pool 的设计常用来加速处理执行较耗时的重任务,且为了避免 goroutine 的过度创建,需要指定工作池的大小。使用 golang 的 goroutine 与 chan,数行代码即可实现一个简单的工作池。
阅读更多业务中,会有对某段逻辑在未来某一时刻执行或以一定时间间隔周期性执行的需求。golang 使用 timer 及 ticker 来满足该需求场景。
阅读更多golang 中可以使用 Buffered channel 作为信号量来对服务的并发访问作吞吐量限制。
阅读更多以常规方式编写并发程序,需要对共享变量作正确的访问控制,处理起来很困难。而 golang 提出一种不同的方式,即共享变量通过 channel 传递,共享变量从不被各个独立运行的线程(goroutine)同时享有,在任一时刻,共享变量仅可被一个 goroutine 访问。所以,不会产生数据竞争。并发编程,golang 鼓励以此种方式进行思考,精简为一句口号——“勿通过共享内存来进行通信,而应通过通信来进行内存共享”。
阅读更多1 题目描述 给定一个m x n矩阵,若一个元素为0,将其所在行与列全部元素置为0,请使用原地计算。
阅读更多