理解golang

收录了 8 篇文章 · 1 人关注

  • 基于go的微服务搭建

    https://segmentfault.com/blog/microgo

  • 从PHP Laravel 到 Go Iris--路由篇

    Laravel是我最喜欢的PHP Web开发框架,所以也希望可以在Go的Web框架中选择一个类似Laravel这样的好用又全栈的框架,刷了一下Beego, Echo , Gin, 以及Iris的文档,最终还是选择Iris,当然我是没有从性能角度考虑,只是从可以快速开发,且支持的特性全还有就是看着顺眼的心理选择了Iris,应该有不少PHPer像我一样使用Laravel同时在学习Go,所以为了便于Laravel开发者可以快速的转到Iris开发,我准备写一系列这两者框架的比较文章。 基本路由 Iris...

  • Golang研学:如何掌握并用好defer(延迟执行)

    defer:在函数A内用defer关键字调用的函数B会在在函数A return后执行。 golang defer 先看一个基础的例子,了解一下defer的效果 func main() { fmt.Println("in main func:", foo()) } func foo() int { i := 0 defer fmt.Println("in defer :", i) i = 1000 fmt.Println("in foo:", i) return i+24 } 这段代码运行后会打印...

  • Golang 格式输出符号

    %d int变量 %x, %o, %b 分别为16进制,8进制,2进制形式的int %f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00 %t 布尔变量:true 或 false %c rune (Unicode码点),Go语言里特有的Unicode字符类型 %s string %q 带双引号的字符串 "abc" 或 带单引号的 rune 'c' %v 会将任意变量以易读的形式打印出来 %T 打印变量的类型 %% 字符型百分比标志(%符号...

  • Goroutine 的同步(第三部分)

    - 第一部分:https://studygolang.com/articles/14118 - 第二部分:https://studygolang.com/articles/14478 ## mutex 和 sync.Once 介绍 ![image](https://raw.githubusercontent.com/studygolang/gctt-images/master/sync-goroutine/part3-1.jpeg) 假设你的程序中有一个需要某种初始化的功能。...

  • goroutine 的同步(第一部分)

    ![image](https://raw.githubusercontent.com/studygolang/gctt-images/master/sync-goroutine/part1.jpeg) 假设 Go 程序启动了两个 goroutine: ```go package main import ( "fmt" "sync" ) func main() { var v int var wg sync.WaitGroup ...

  • goroutine 的同步(第二部分)

    > Channel 通信 第一部分介绍了发送与接收操作之间最直观的顺序关系: > *向一个 Channel 中发送数据先于接收数据。* 于是,我们能够控制分布于两个 goroutine 中的操作的顺序。 ```go var v int var wg sync.WaitGroup wg.Add(2) ch := make(chan int) go func() { v = 1 ch <- 1 wg.Done() }() go fu...

  • Go 语言的优点,缺点和令人厌恶的设计

    这是关于 「[Go是一门设计糟糕的编程语言 (Go is not good)](https://github.com/ksimka/go-is-not-good)」 系列的另一篇文章。Go 确实有一些很棒的特性,所以我在这篇文章中展示了它的优点。但是总体而言,当超过 API 或者网络服务器(这也是它的设计所在)的范畴,用 Go 处理商业领域的逻辑时,我感觉它用起来麻烦而且痛苦。就算在网络编程方面,Go 的设计和实现也存在诸多问题,这使它看上去简单实际则暗藏危险。 写这篇文章的动机是因为我最...