【吐血整理】超全golang面试题合集+学习指南+知识图谱 涵盖大部分golang程序员所需要掌握的核心知识

由于外链问题,完整版可【点击】阅读原文或到 github项目 中,欢迎关注。目录(善用Ctrl+F)基础入门新手Golang开发新手常犯的50个错误数据类型连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。golang面试题:字符串转成byte数组,会发生内存拷贝吗?golang面试题:翻转含有中文、数字、英文字母的字符串golang面试题:拷贝大切片一定比小切片代价大吗?map不初始化使用会怎么样map不初始化长度和初始化长度的区别map承载多大,大了怎么办map的it...阅读全文

Segmentfault 2021-01-14 11:32:36 .container .car 等

C PHP Go 指针探究

前沿在我学过的语言中有C语言,PHP,Go。今天我们来探讨下,在这些语言中指针的用法有什么不同呢?定义我们先来看个个语言中指针的形式吧C语言中int i = 5; int * p = &i; printf("%p", p); //结果是 0x7ffef3f4ff64PHP中$c = 5; $b = &$c; echo $b; //结果是 5Go中var i int = 5; var p *int = &i fmt.Printf("%p", p); //结果是 0xc0000b602021从上面我...阅读全文

Segmentfault 2021-01-13 17:32:34 .container .car 等

Docker Desktop 已经支持 Apple M1 了

[docker-m1-preview.jpg](https://static.studygolang.com/210110/4f8135ce8474cf403f2a3e9ff9db29a4.jpg) 在苹果 M1 芯片上使用的 Docker Desktop 目前是一个技术预览版,专门提供给想尝试 Docker Desktop 的实验性构建的苹果 M1 机器的早期采用者。 > 注意:基于苹果 M1 芯片的 Docker Desktop 仍在开发中。建议不要在生产环境中使用技术预览版。 ...阅读全文

Go语言中文网 2021-01-10 23:28:27 hsowan

gin框架总结

gin框架总结 一 gin框架初识 1.1 helloworld gin框架中的路由是基于httprouter开发的。HelloWorld: package main import ( "github.com/gin-gonic/gin" "fmt" ) func main() { r := gin.Default() //Default返回一个默认路由引擎 r.GET("/", func(c *gin.Context) { username := c.Query("username") fmt...阅读全文

简书 2021-01-10 20:41:46 voidFan

Golang CSP模型基础库

Go语言的哲学思想之一为:Do not communicate by sharing memory; instead, share memory by communicating. 翻译成中文即是:不要通过共享内存进行通信;取而代之,应该通过通信来共享内存。 为了支持这种哲学,Go语言提供了channel(通道)。 想当初,我刚看到这种哲学的时候觉得特别好,但是在具体实现代码的时候,对其理解却不是很深刻。在项目中,我总是把channel当作生产者-消费者模型中的消息队列来进行使用。这样对于在不同...阅读全文

简书 2021-01-10 19:37:48 筑梦之队

Golang基础入门01 | 简介

介绍 Go编程语言(也称为Golang)是Google开发的一种开放源代码编程语言,用于创建简单,可靠和高效的软件。 Golang值得学习的原因有很多: 由专家开发 语法简单易懂 用于Web开发,尤其是后端开发 在电脑或者您的开发环境中安装Go Go的安装指南可在此处获得:https://golang.org/dl/ 安装完成后,您可以在喜欢的文本编辑器(例如VSCode)中编写Go程序,也可以使用专用的IDE(例如Goland)。 Golang游乐场也可用于学习Go编程语言:https://p...阅读全文

简书 2021-01-10 19:37:44 技术全沾

常见数据库备份方式:MySQLbinlog数据恢复详解

数据备份有哪些种?# MySQL中数据备份的方式还是蛮多的,常见的有冷备份、逻辑备份、热备份、快照备份。 什么是冷备份? 所谓的冷备份,说白了就是在数据库停止运行的情况下,直接备份磁盘中MySQL用来存储数据的那些数据文件。 在前面的文章中,白日梦跟大家分享过MySQL的表空间。看过那篇文章的同学都是知道,MySQL中的数据最终都存储在表空间中的。表空间 == 表空间文件。其实而所谓的空间,本质上对应着存在于操作系统磁盘上的肉眼能看到的物理文件。 下面你可以看一下我的MySQL的表空间文件都是怎...阅读全文

简书 2021-01-10 19:37:44 并发量就是我的发量

【Golang源码分析】Golang如何实现自举(一)

前言 在写一篇文章之前,某位大佬勾起了我对学习这个主题的欲望。刚好那天带着病痛,后来根据一个Makefile字符集的问题,拿着开始研究。发现研究、研究不疼了,果然和周星驰电影《国产凌凌漆》一样精神麻醉才是最好的麻醉药。今年以来也没有给自己立啥学习目标,刚好研究Golang自举动,可以作为我今年的学习目标。该篇文章只是个开始,后续会继续迭代。 大家都知道在Go早起其实编译器并不是go去编写的,后期自举实现了编译。不过在学习Golang自举之前要了解一下Golang的版本发展历史。Golang Gi...阅读全文

Segmentfault 2021-01-12 23:32:35 .container .car 等

详解defer实现机制(附上三道面试题)

前言嗨,大家好,我是asong,鸽了好久,其实元旦就想写一下这篇文章,但是因为喝酒喝断片了,养了三天才缓过来,就推迟到这个周末了,不过多追溯了,有点丢人。今天与大家来聊一聊go中的关键字defer,目前很多编程语言中都有defer关键字,而go语言的defer用于资源的释放,会在函数返回之前进行调用,它会经常被用于关闭文件描述符、关闭数据库连接以及解锁资源。下面我们就深入Go语言源码介绍defer关键字的实现原理。文末尾给你们留了三道题,检测一下学习成果吧~基本使用我们首先来看一看defer关键...阅读全文

Segmentfault 2021-01-12 18:32:34 .container .car 等

golang proto import 路径问题 和 google protobuf

背景记录使用proto做gprc接口的几个小坑,基于goland ideimport写proto时,有时候需要引入其它proto,之后会发现goland提示import路径不存在注意,这里只是goland插件提示而已,与实际生成无关,只需要在插件路径中,加入你proto的路径即可而在实际生成pb文件时,只需要在命令中,通过-I加入关联的目录即可protoc --go_out=plugins=grpc:. -I=${GOPATH}/src -I=. *.protogoogle protobuf很多...阅读全文

Segmentfault 2021-01-12 17:32:34 .container .car 等

Go环境搭建以及Beego安装

Go环境安装 打开官网下载地址选择对应的系统版本, 复制下载链接 这里我选择的是 go1.11.5.linux-amd64.tar.gz:https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz 2.执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等 tar -C /usr/local -zxvf go1.11.5.linux-amd64.tar.gz 3.配置PATH环境变量 添加/usr/loacl/go/bin目录到PA...阅读全文

简书 2021-01-10 10:38:43 July_EF

【golang】Gosched()、Goexit()、GOMAXPROCS

Gosched()当前协程等待执行,直到其他协程执行完毕后自动恢复,只有单核心时有效。 Goexit()终止当前协程。 GOMAXPROCS(n)设置CPU核心数/线程数,返回值是之前设置的CPU核心数。 package main import ( "fmt" "runtime" ) func main() { //设置cpu核心个数 fmt.Println(runtime.GOMAXPROCS(1)) go func() { for i:=0;i<10;i++{ //终止所在的线程 runti...阅读全文

简书 2021-01-10 10:38:42 七八个星天

实战 | 前端WebAR实现简单版pokemon Go

最近AR的话题很火,如前段时间pokemon Go游戏,和支付宝的AR红包,加上最近看到了一些关于前端运用webRTC技术实现WebAR的文章,这边就尝试结合下,实现一个简单版的pokeMon Go的游戏。由于有兼容性问题,目前demo只是跑在android的手Q中,具体效果如下:WebARWebAR说白了就是通过web端的技术能力去实现AR的效果!我们知道,AR最基础要实现的功能其实就是实时视频效果,然而帮助我们实现这种实时视频效果的技术基础是WebRTC;WebRTC是什么?那么,WebRT...阅读全文

51CTO博客 2021-01-09 22:37:33 mb5ff980f81f3d8

实现动态负载均衡和服务平滑发布怎么实现?靠“Nginx、Consul、Upsync“三兄弟就够了!

前提 前段时间顺利地把整个服务集群和中间件全部从UCloud迁移到阿里云,笔者担任了架构和半个运维的角色。这里详细记录一下通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布的核心知识点和操作步骤,整个体系已经在生产环境中平稳运行。编写本文使用的虚拟机系统为CentOS7.x,虚拟机的内网IP为192.168.56.200。 通过Nginx、Consul、Upsync实现动态负载均衡 动态负载均衡的基本原理 一般会通过upstream配置Nginx的反向代理池: http {...阅读全文

简书 2021-01-09 19:38:45 代码小能手

Jetbrains(phpstorm, golang..)系列产品重置试用方法

开发php,或golang时,最喜欢用的编辑器还是phpstorm和golang,尝试使用过vscode一段时间,还是不习惯,但是Jetbrains是付费的,需要经常到处找激活码,比较烦,最近发现一个可以重置30天的插件,分享一下(当然有钱的还是购买正版吧)地址: https://zhile.io/2020/11/18/jetbrains-eval-reset.html阅读全文

简书 2021-01-09 19:38:25 哈里斯s

在windows系统下打包linux平台运行的go程序

一、用windows的cmd//cd到main.go目录下set GOARCH=amd64 //设置目标可执行程序操作系统构架,包括 386,amd64,armset GOOS=linux //设置可执行程序运行操作系统,支持 darwin,freebsd,linux,windowsgo build //打包 二、linux(centos7)设置chmod +x 应用 //1、这种方法仅用来调试测试,不是守护进程,关闭终端就会退出./应用//2、守护进程启动,启动的进程会在新的session中,...阅读全文

51CTO博客 2021-01-09 10:04:19 jbaowei2000