- 由于 Chrome 88 和 Edge 88 中删除了对FTP 协议的支持,所以以往直接在chrome打开ftp协议共享文件目录的方式不再可行了;所以有必要寻求一个可选的替代方案;go filebrowser项目就是一个可选的网页文件浏览选项; 项目地址: https://github.com/filebrowser/filebrowser 如果不需要进行特殊定制,那么可以直... 由于 Chrome 88 和 Edge 88 中删除了对FTP 协议的支持,所以以往直接在chrome打开ftp协议共享文件目录的方式不再可行了;所以有必要寻求一个可选的替代方案;go filebrowser项目就是一个可选的网页文件浏览选项; 项目地址: https://github.com/filebrowser/filebrowser 如果不需要进行特殊定制,那么可以直...
- 2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的?福哥答案2021-03-12:runtime/pprof:采集程序(非 Server)的运行数据进行分析。net/http/pprof:采集 HTTP Server 的运行时数据进行分析。日志用logrus,海量日志用kafka。这块不太熟,所以写的简单,实在抱歉。 2021-03-12:go中,如何确定有没有内存泄露,系统里怎么去监控整体的运行情况,日志是怎么处理的?福哥答案2021-03-12:runtime/pprof:采集程序(非 Server)的运行数据进行分析。net/http/pprof:采集 HTTP Server 的运行时数据进行分析。日志用logrus,海量日志用kafka。这块不太熟,所以写的简单,实在抱歉。
- 2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?福哥答案2021-03-11:1.外部协程和内部协程没关系。2.如果程序不奔溃,不会影响内部协程继续执行。如果没做特殊处理,整个程序会奔溃。3.三种方式:共享变量作为标志位,通道,上... 2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?福哥答案2021-03-11:1.外部协程和内部协程没关系。2.如果程序不奔溃,不会影响内部协程继续执行。如果没做特殊处理,整个程序会奔溃。3.三种方式:共享变量作为标志位,通道,上...
- 2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?福哥答案2021-03-06:这是面试中被问到的。实力有限,真正的答案还不知道。我的想法是a=1是原子操作,a=b不是原子操作。实际开发中,不大可能是a=1这种情况,可以说是协程不安全。答案1:不是协程安全的,赋值非原子操作,需要加锁要么就做原子操作,否则会引起data race。评论如下:题016_卓熊 7:3... 2021-03-06:go中,公共变量是协程安全吗?赋值操作是原子的吗?为什么?福哥答案2021-03-06:这是面试中被问到的。实力有限,真正的答案还不知道。我的想法是a=1是原子操作,a=b不是原子操作。实际开发中,不大可能是a=1这种情况,可以说是协程不安全。答案1:不是协程安全的,赋值非原子操作,需要加锁要么就做原子操作,否则会引起data race。评论如下:题016_卓熊 7:3...
- 2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么?福哥答案2021-03-05:这是面试中被问到的。实力有限,真正的答案还不知道。答案1:调节这个参数影响的是P的个数,也就影响了M(线程)干活的个数。相当于你可以有更多的执行线程。先以网络io来说,网络io 在golang 里面是异步的,用epoll池... 2021-03-05:go中,io密集型的应用,比如有很多文件io,磁盘io,网络io,调大GOMAXPROCS,会不会对性能有帮助?为什么?福哥答案2021-03-05:这是面试中被问到的。实力有限,真正的答案还不知道。答案1:调节这个参数影响的是P的个数,也就影响了M(线程)干活的个数。相当于你可以有更多的执行线程。先以网络io来说,网络io 在golang 里面是异步的,用epoll池...
- 这是一本写给开发者的⼯作必备基础书籍,开放在线阅读和 PDF 原稿下载,全书共 253 页/彩色 这是一本写给开发者的⼯作必备基础书籍,开放在线阅读和 PDF 原稿下载,全书共 253 页/彩色
- 原文:https://segmentfault.com/a/1190000004222341结论:年、月、日、时、分、秒,英文、数字,必须精确地限定到 golang 指定的时间原点:2006-01-02 15:04:05 now := time.Now().Local() nowRight := now.Format("2006-01-02") vs now := time... 原文:https://segmentfault.com/a/1190000004222341结论:年、月、日、时、分、秒,英文、数字,必须精确地限定到 golang 指定的时间原点:2006-01-02 15:04:05 now := time.Now().Local() nowRight := now.Format("2006-01-02") vs now := time...
- Go程序内存回收方式MADV_DONTNEED与MADV_FREE介绍 Go程序内存回收方式MADV_DONTNEED与MADV_FREE介绍
- 先爬取网页的body将body转为str用正则表达式与str匹配package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")var ( // w代表大小写字母+数字+下划线 reEmail = `\w+@\w+\.\w+` // s?有或者没有s // +代表出1次或多次 //\s\S各种字符 // +?代表贪婪模式 reLinke ... 先爬取网页的body将body转为str用正则表达式与str匹配package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")var ( // w代表大小写字母+数字+下划线 reEmail = `\w+@\w+\.\w+` // s?有或者没有s // +代表出1次或多次 //\s\S各种字符 // +?代表贪婪模式 reLinke ...
- Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println4. (5. "Hello, World!"6. ) Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println4. (5. "Hello, World!"6. )
- 句描述if 语句if 语句 由一个布尔表达式后紧跟一个或多个语句组成。if...else 语句if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。if 嵌套语句你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。switch 语句switch 语句用于基于不同条件执行不同动作。select 语句se... 句描述if 语句if 语句 由一个布尔表达式后紧跟一个或多个语句组成。if...else 语句if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。if 嵌套语句你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。switch 语句switch 语句用于基于不同条件执行不同动作。select 语句se...
- 斐波那契数列以下实例通过 Go 语言的递归函数实现斐波那契数列:实例package mainimport "fmt"func fibonacci(n int) int { if n < 2 { return n } return fibonacci(n-2) + fibonacci(n-1)}func main() { var i int for i = 0; i < ... 斐波那契数列以下实例通过 Go 语言的递归函数实现斐波那契数列:实例package mainimport "fmt"func fibonacci(n int) int { if n < 2 { return n } return fibonacci(n-2) + fibonacci(n-1)}func main() { var i int for i = 0; i < ...
- Go 语言递归函数递归,就是在运行的过程中调用自己。语法格式如下:func recursion() { recursion() /* 函数调用自身 */}func main() { recursion()}Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。阶乘以下实例通... Go 语言递归函数递归,就是在运行的过程中调用自己。语法格式如下:func recursion() { recursion() /* 函数调用自身 */}func main() { recursion()}Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。阶乘以下实例通...
- 通道缓冲区通道可以设置缓冲区,通过 make 的第二个参数指定缓冲区大小:ch := make(chan int, 100)带缓冲区的通道允许发送端的数据发送和接收端的数据获取处于异步状态,就是说发送端发送的数据可以放在缓冲区里面,可以等待接收端去获取数据,而不是立刻需要接收端去获取数据。不过由于缓冲区的大小是有限的,所以还是必须有接收端来接收数据的,否则缓冲区一满,数据发送端就无法再发送数... 通道缓冲区通道可以设置缓冲区,通过 make 的第二个参数指定缓冲区大小:ch := make(chan int, 100)带缓冲区的通道允许发送端的数据发送和接收端的数据获取处于异步状态,就是说发送端发送的数据可以放在缓冲区里面,可以等待接收端去获取数据,而不是立刻需要接收端去获取数据。不过由于缓冲区的大小是有限的,所以还是必须有接收端来接收数据的,否则缓冲区一满,数据发送端就无法再发送数...
- Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可。goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。goroutine 语法格式:go 函数名( 参数列表 )例如:go f(x, y, z)开启一个新的 goroutine:f(x, y, z)Go 允许使用 go 语句开启一个新的运行期线程, 即 gorouti... Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可。goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。goroutine 语法格式:go 函数名( 参数列表 )例如:go f(x, y, z)开启一个新的 goroutine:f(x, y, z)Go 允许使用 go 语句开启一个新的运行期线程, 即 gorouti...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签