收藏本版 |訂閲

Go语言论坛 今日: 0|主題: 602|排名: 88 

  • 用go-module作为包管理器搭建go的web服务器
    本篇博客主要介绍了如何从零开始,使用Go Module作为依赖管理,基于Gin来一步一步搭建Go的Web服务器。并使用Endless来使服务器平滑重启,使用Swagger来自动生成Api文档。 源码在此处:项目源码 大家可以先查看源码,然后再根据本篇文章,来了解搭建过程中服务器的一些细节。 搭建环境 以下所有的步骤都基于MacOS。 安装go ...
    049 燕云十六州 发表于 2019-6-10 Go语言论坛
  • Viper-Go一站式配置管理工具
    什么是Viper Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性: 设置默认值 从JSON、TOML、YAML、HCL和Java properties文件中读取配置数据 可以监视配置文件的变动、重新读取配置文件 从环境变量中读取配置数据 从远端配置系统中读取数 ...
    073 吴净彦 发表于 2019-6-7 Go语言论坛
  • Go orm框架gorm学习
    之前咱们学习过原生的Go连接MYSQL的方法,使用Go自带的"database/sql"数据库连接api,"github.com/go-sql-driver/mysql"MYSQL驱动,通过比较原生的写法去写sql和处理事务。目前开源界也有很多封装好的orm操作框架,帮我们简省一些重复的操作,提高代码可读性。gorm就是这样的一款 ...
    040 太子殿下煮鸡汤 发表于 2019-6-5 Go语言论坛
  • go test benchmark
    Benchtest的简单使用 一个简单的benchtest用例 // 以BenchmarkXXX类似命名,并传入b *testing.B 参数 func BenchmarkLoopSum(b *testing.B) { for i := 0; i < b.N; i++ { total := 0 for j := 0; j <= maxLoop; j++ { total += j } } } 查看benchtest的参数: go help testfl ...
    028 乐稳哥 发表于 2019-6-5 Go语言论坛
  • 深度解密Go语言之unsafe
    目录指针类型什么是 unsafe为什么有 unsafeunsafe 实现原理unsafe 如何使用获取 slice 长度获取 map 长度map 源码中的应用Offsetof 获取成员偏移量string 和 slice 的相互转换总结参考资料 上一篇文章我们详细分析了 map 的底层实现,如果你也跟着阅读了源码,那一定对 unsafe.Pointer 不陌生,map 对 key 进行定位的时候, ...
    042 袁立峰 发表于 2019-6-3 Go语言论坛
  • GO语言网络编程
    socket编程 Socket是BSD UNIX的进程通信机制,通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。Socket可以理解为TCP/IP网络的API,它定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。电脑上运行的应用程序通常通过”套接字”向网络发出请求或者应答网络请求。 Socket是应用层与TC ...
    066 飞飞姐 发表于 2019-6-1 Go语言论坛
  • Go:获取命令行参数
    一、Low B 方式 package main import ( "fmt" "os" ) func main() { fmt.Println("命令行的参数有", len(os.Args)) // 遍历 os.Args 切片,就可以得到所有的命令行输入参数值 for i, v := range os.Args { fmt.Printf("args[%v]=%v\n", i, v) } } 使用 go build -o test.exe main.go 命令生成 test.exe 可执行 ...
    0104 恬宝乖乖 发表于 2019-5-30 Go语言论坛
  • Go语言基础之网络编程
    Go语言基础之网络编程 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网络编程请自行 ...
    047 老鬼少爷 发表于 2019-5-30 Go语言论坛
  • Go语言基础之并发
    Go语言基础之并发 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因。 Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天)。 Go语言的并发通过gorout ...
    079 人民代表人民选 发表于 2019-5-29 Go语言论坛
  • Swoole 协程与 Go 协程的区别
    首发原文链接: https://mp.weixin.qq.com/s/2FrRyST3o7h6IN9zjZMKjw Swoole 协程与 Go 协程的区别 进程、线程、协程的概念 进程是什么? 进程就是应用程序的启动实例。 例如:打开一个软件,就是开启了一个进程。 进程拥有代码和打开的文件资源,数据资源,独立的内存空间。 线程是什么? 线程属于进程,是程序的执行者 ...
    068 黄河大李鱼 发表于 2019-5-28 Go语言论坛
  • Go中的日志及第三方日志包logrus
    有别的语言使用基础的同学工作中都会接触到日志的使用,Go中自然也有log相关的实现。Go log模块主要提供了3类接口,分别是 “Print 、Panic 、Fatal ”,对每一类接口其提供了三种调用方式,分别是 “Xxxx 、Xxxxln 、Xxxxf”,基本和fmt中的相关函数类似。 1. Go中的log包 1. 基 ...
    099 荼蘼花 发表于 2019-5-26 Go语言论坛
  • 深度解密Go语言之map
    目录什么是 map为什么要用 mapmap 的底层如何实现map 内存模型创建 map哈希函数key 定位过程map 的两种 get 操作如何进行扩容map 的遍历map 的赋值map 的删除map 进阶可以边遍历边删除吗key 可以是 float 型吗?总结参考资料 这篇文章主要讲 map 的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码 ...
    03 皓月婵娟 发表于 2019-5-22 Go语言论坛
  • 如何开始学习Go语言
    除了Java、Python和JavaScript之外,如果要开始学习一门新语言的话,我想应该是Go! Go语言正在被越来越多的公司使用。我们公司的后端服务已经全面采用Go语言实现了。 最开始接触Go语言是去年将一份Go代码“翻译”成Python并集成到测试平台上,说来也挺神奇,我从来没学过Go却完成了这个工作,这也侧面反应了Go的语法还是很 ...
    059 博博博博博博 发表于 2019-5-21 Go语言论坛
  • Go语言中方法和函数的区别
    今天看《Go语言实战》发现方法和函数不太一样,写的格式不一样,用法也不一样。所以记一次笔记。 在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说,函数就是方法,方法就是函数,但是在Go语言中,函数是指不属于任何结构体、类型的方法,也就是说,函数是没有接收者的;而方法是有接收 ...
    036 讲得好 发表于 2019-5-21 Go语言论坛
  • 实战分析一个运行起来会卡死的Go程序
    序言 最近一位非常热心的网友建议结合demo来分析一下goroutine的调度器,而且还提供了一个demo代码,于是便有了本文,在此对这位网友表示衷心的感谢! 这位网友提供的demo程序可能有的gopher以前见过,已经知道了具体原因,但本文假定我们是第一次遇到这种问题,然后从零开始,通过一步一步的分析和定位,最终找到问题的根 ...
    071 冬季到台北来看雨 发表于 2019-5-20 Go语言论坛
  • Go语言标准库之flag
    Go语言flag包基本使用 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os" ) //os.Args demo func main() { //os.Args是一个[]string ...
    092 狗仗人势 发表于 2019-5-19 Go语言论坛
  • Go语言标准库之fmt.Scan
    Go语言fmt.Scan使用指南 本文介绍了Go语言中fmt包中从标准输入获取数据的的Scan系列函数、从io.Reader中获取数据的Fscan系列函数以及从字符串中获取数据的Sscan系列函数的用法。 Scan系列 Go语言fmt包下有fmt.Scan、fmt.Scanf、fmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。 fmt.Scan 语法 func S ...
    09 黄仁勋 发表于 2019-5-19 Go语言论坛
  • Go语言——没有对象的面向对象编程
    本文译自Steve Francia在OSCON 2014的一个PPT,原作请前往:https://spf13.com/presentation/go-for-object-oriented-programmers/ 对我来说,最吸引我的不是Go拥有的特征,而是那些被故意遗漏的特征。 —— txxxxd 为什么你要创造一种从理论上来说,并不令人兴奋的语言? 因为它非常有用。 —— Rob Pike Go中的“对 ...
    098 神孟一刀 发表于 2019-5-16 Go语言论坛
  • go build -tags 的使用
    go build 使用tag来实现编译不同的文件 go-tooling-workshop 中关于go build的讲解可以了解到go bulid的一些用法,这篇文章最后要求实现一个根据go bulid -tag功能来编译不同版本的做法,version参数根据tag传进来的值进行编译。下面是一个实例,main.go package main import "fmt" // HINT: You might need to move this ...
    065 鹿鹿就是梦妍 发表于 2019-5-14 Go语言论坛
  • 五个goland进行go开发的小技巧
    五个goland进行go开发的小技巧 本文译自5 Tips To Speed Up Golang Development With IntelliJ Or Goland 确实很实用. 1. 实现interface 比如我想为下面的结构体实现共识interface type MyConensus struct { } 通过右键generate->implement methods->搜索engine 一键生成下面代码: type MyConensus struct { info str ...
    060 其实我不呆 发表于 2019-5-9 Go语言论坛
  • 下一頁 »

    快速發帖

    還可輸入 180 個字符
    您需要登錄後才可以發帖 登錄 | 立即注册

    本版積分規則

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部