07 go语言
Home
Welcome to the Go wiki, a collection of information about the Go Programming Language. Awesome Go is another great resource for Go programmers, curated by the Go community.
Contributing
- This wiki is open to editing by any member of the Go community with a GitHub account.
- If you would like to add a new page, please first open an issue in the Go issue tracker with the prefix 'wiki' to propose the addition. Clearly state why the content does not fit into any of the existing pages.
- Because renaming of pages in the wiki can break external links, please open an issue before renaming or removing any wiki page.
Table of Contents
- Getting started with Go
- Working with Go
- Learning more about Go
- The Go Community
- Using the go toolchain
- Additional Go Programming Wikis
- Online Services that work with Go
- Troubleshooting Go Programs in Production
- Contributing to the Go Project
- Platform Specific Information
- Release Specific Information
- Questions
Getting started with Go
- The Go Tour is the best place to start.
- Effective Go will help you learn how to write idiomatic Go code.
- Go standard library documentation to familiarize yourself with the standard library.
- Use the Go Playground to test out Go programs in your browser.
- Still not convinced? Check out this list of Go Users and a few of their Success stories. We've also assembled a long list of reasons why you should give Go a try.
- Read about the companies which have switched from other languages to Go.
Working with Go
Ready to write some Go code of your own? Here are a few links to help you get started.
- Install and Setup your Environment
- Start here: Official Installation Documentation
- If you prefer to install from source, read this first.
- InstallFromSource - Additional tips on source installs.
- Windows user? Install and configure Go, Git and Atom for Windows
- Mac user? How I start - Go - A step-by-step guide to installing Go and building your first web service.
- Having installation problems? InstallTroubleShooting
- Make sure you have your $GOPATH environment variable set correctly
- If you need additional tips on using $GOPATH, go here.
- MultipleGoRoots - More advanced information on working with multiple go installations and the
$GOROOT
variable.
- Go IDEs and Editors - Information on how to use your favorite editor with Go.
- Tools for working with Go code - Formatting, linting, vetting, refactoring, navigation and visualization.
- Finding Go Libraries and Packages
- Start here: Go open source projects.
- Search for Go packages: godoc.org
- Visualization of the Go open source package graph
- Managing your dependencies - An overview of the tools you can use to manage third-party packages (vendoring).
- Publishing Go Packages as Open Source
- Getting ready to publish your package? Start here.
- The Go Checklist - A comprehensive guide for publishing a project.
- How to layout your GitHub repo to make it easy to for other Go programmers to use with the
go get
command. - Go Package, Go - A few recommendations for making Go packages easy to use.
Learning more about Go
Once you have an overview of the language, here are resources you can use to learn more.
- Learning Go - A collection of resources for learning Go - beginner to advanced.
- Best Practices for a New Go Developer - Insights from Go community members.
- Server programming - Building web, mobile, and API servers.
- More on concurrency
- More on error handling
- More on testing
- More on mobile - Android and iOS
- Books - A list of Go books that have been published (ebook, paper)
- Blogs - Blogs about Go
- Podcasts - Podcasts and episodes featuring Go
- Videos, Talks and Presentations
- GopherVids is a searchable index of videos about Go.
- GoTalks - A collection of talks from Go conferences and meetups.
- Screencasts
- Articles - A collection of articles to help you learn more about Go.
- Training - Free and commercial, online and classroom training for Go.
- University Courses - A list of CS programs and classes using Go.
- Resources for non-English speakers
The Go Community
Here are some of the places where you can find Gophers online. To get a sense of what it means to be a member of the Go community, read Damian Gryski's keynote from the GolankUK 2015 conference or watch Andrew Gerrand's closing keynote from GopherCon 2015.
- Where Gophers hangout online:
- The Go Forum - An all-purpose discussion forum for the Go community.
- Gophers Slack Channel - For real-time chat (request membership).
- Golang News - For curated links about Go Programming.
- There is also a /r/golang sub-reddit.
- On Twitter, follow the @golang account and keep tabs on the #golang hashtag.
- We've also got a landing page on Stack Overflow for Go Q&A.
- Matrix enthusiasts are invited to join #Go:matrix.org.
- Discord users are welcome at the Discord Gophers server.
- Mailing Lists
- The mailing list for Go users is golang-nuts - very high traffic.
- Before you post, check to see if it's already been answered, then read these tips on how to ask a good question
- For discussions about the core Go open source project, join golang-dev.
- To get just our release announcements, join golang-announce
- The mailing list for Go users is golang-nuts - very high traffic.
- User Groups & Meetups - There are Go Meetups in many cities
- GoBridge - Volunteers helping underrepresented communities to teach technical skills and to foster diversity in Go.
- Women Who Go
- See here for additional information GoUserGroups
- Conferences - A list of upcoming and past Go conferences and major events.
- Companies using Go - A comprehensive list of companies using Go throughout the world.
- Learn more about the Go Gopher images by Renee French.
Using the go toolchain
- Start with the standard documentation for the
go
command available here - Start here for to learn about vendoring.
- See also PackageManagementTools for package management tools.
- Cross Compilation
- Shared libraries and Go (buildmode)
- Go Shared Libraries - Examples for creating and using shared libraries from Go and Python.
- Sharing Go Packages with C - by @ralch.
- Calling Go libraries from Python - by Filippo Valsorda
- Calling Go libraries from Ruby - by Peter Hellberg
- Calling Go libraries from Swift - by Jaana Burcu Dogan
- Build a Ruby Gem with a Go native extension - by @jondot
- gohttplib - An experiment in using Go 1.5 buildmode=c-shared.
- See the wikis below for additional details:
Additional Go Programming Wikis
- Why Go doesn't Support Generics: A Summary of Go Generics Discussions - Start here before you join the debate.
- Concurrency
- Timeouts - Abandon async calls that take too long
- LockOSThread
- MutexOrChannel - When to use one vs the other
- RaceDetector - How to detect and fix race conditions
- Working with Databases
- database/sql - Online tutorial for working with the database/sql package.
- TUGTBDDAwG - Guide to building data driven apps.
- SQLDrivers
- SQLInterface
- From other languages
- Strings
- Comments
- CommonMistakes
- Errors
- GcToolchainTricks
- Hashing
- HttpFetch
- HttpStaticFiles
- InterfaceSlice
- Iota
- MethodSets
- PanicAndRecover
- Range
- RateLimiting
- Rationales
- SendingMail
- SignalHandling
- SimultaneousAssignment
- SliceTricks
- Switch
- TableDrivenTests
Online Services that work with Go
If you're looking for services that support Go, here's a list to get you started.
- Cloud Computing - Go is well supported on most cloud service providers.
- Continuous Integration and Continuous Deployment - Go is well supported by most CI/CD frameworks
- Monitoring/Logging
- DeferPanic - Dedicated Go application performance monitoring.
- OpsDash - Go-based cluster monitoring platform.
- Package and Dependency Management
- Gopkg.in is a source for stable Go libraries, provided by Gustavo Niemeyer.
Troubleshooting Go Programs in Production
- Understand the performance of your Go apps using the pprof package
- Heap Dumps
Contributing to the Go Project
- Start by reading the Go Contribution Guidelines
- If you'd like to propose a change to the Go project, start by reading the Go Change Proposal Process
- An archive of design documents is also available
- Go releases happen on ~6 month intervals. See here for more information
- Want to know more about how the Go source sub-repositories are structured?
- The Go project requires that all code be reviewed before it is submitted.
- Read more about our code review practices
- If you're commenting on code under review, please read these guidelines
- Issues
- Bug reports and feature requests should be filed using the GitHub issue tracker
- Want to understand how we handle issues that are reported?
- Project Dashboards
Platform Specific Information
- See MinimumRequirements for minimum platform requirements of current Go ports.
- Considering porting Go to a new platform? Read our porting policy first
- Mobile
- Ubuntu
- Windows
- GoArm
- ChromeOS
- Darwin
- DragonFly BSD
- FreeBSD
- Linux
- NativeClient
- NetBSD
- OpenBSD
- Plan 9
- Solaris
Release Specific Information
Notes:
- Please refrain from changing the title of the wiki pages, as some of them might be linked to from golang.org or other websites.
07 go语言的更多相关文章
- 07.C语言:结构体、共用体、枚举
一.结构体 是一种复合的数据类型,由多个不同类型的数据(为结构体的成员)组成的集合. 在c语言中没有给出结构体这种类型具体的形式(名称),但是给出类定义该结构体类型的方法(格式). 在使用结构体类型时 ...
- 07. Go 语言接口
Go 语言接口 接口本身是调用方和实现方均需要遵守的一种协议,大家按照统一的方法命名参数类型和数量来协调逻辑处理的过程. Go 语言中使用组合实现对象特性的描述.对象的内部使用结构体内嵌组合对象应该具 ...
- 07 C语言常量
常量的定义 常量是指固定的值,固定值在程序执行期间不会改变.这些固定值,又叫做字面量. 常量可以是任意的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 不要搞得太复杂, ...
- 07 MySQL_SQL语言分类
SQL语言分类 DDL Data Definition Language 数据定义语言 包括: create , alter ,drop , truncate; 不支持事务 DML Data Mani ...
- 07 --C语言字符串函数
1)字符串操作 复制 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strdup(char *str) 将串拷贝到新建的位置处 ...
- 笔记整理——C语言-http
C语言 HTTP GZIP数据解压 - 大烧饼的实验室 - 博客园 - Google Chrome (2013/4/10 18:22:26) C语言 HTTP GZIP数据解压 这个代码在http ...
- C语言I作业12-学期总结
一.我学到的内容 二.我的收获 我完成的作业: 第一次作业 C语言I博客作业02 C语言I作业004 C语言I博客作业05 C语言I博客作业06 C语言I博客作业07 C语言I博客作业08 C语言I博 ...
- | C语言I作业12
C语言I作业12-学期总结 标签:18软件 李煦亮 问题 答案 这个作业属于那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/S ...
- Kotlin 介绍
Kotlin (0:00) 大家好,我是 Michael Pardo,今天我要给大家展示一下 Kotlin 这门语言,同时看看他如何让你在 Android 开发的时候更开心,更有效率. Kotlin ...
随机推荐
- 【BZOJ2733】永无乡(线段树,并查集)
[BZOJ2733]永无乡(线段树,并查集) 题面 BZOJ 题解 线段树合并 线段树合并是一个很有趣的姿势 前置技能:动态开点线段树 具体实现:每次合并两棵线段树的时候,假设叫做\(t1,t2\), ...
- 51nod 1206 Picture 矩形周长求并 | 线段树 扫描线
51nod 1206 Picture 矩形周长求并 | 线段树 扫描线 #include <cstdio> #include <cmath> #include <cstr ...
- 【BZOJ4591】【Shoi2015】超能粒子炮
Description 传送门 Solution 记\(a=\lfloor\frac n p\rfloor\),\(b=n\%p\).我们尝试使用Lucas定理展开这些组合数,寻找公共部分.以下除 ...
- 【bzoj1396】 识别子串
http://www.lydsy.com/JudgeOnline/problem.php?id=1396 (题目链接) 题意 问字符串S每一位的最短识别子串是多长(识别子串指包含这个字符且只出现在S中 ...
- JS的异步
1.异步 程序中现在运行的部分和将来运行的部分之间的关系是异步编程的核心. 多数JavaScript开发者从来没有认真思考过自己程序中的异步到底是如何出现的,以及为什么会出现,也没有探索过处理异步的其 ...
- com.android.support:appcompat-v7 版本号问题
supportLibVersion 的头数字是和targetSdkVersion 版本一样的. ext { supportLibVersion = '22.2.1'} compile "co ...
- bzoj 2839 : 集合计数 容斥原理
因为要在n个里面选k个,所以我们先枚举选的是哪$k$个,方案数为$C_{n}^k$ 确定选哪k个之后就需要算出集合交集正为好这$k$个的方案数,考虑用容斥原理. 我们还剩下$n-k$个元素,交集至少为 ...
- mac 命令行大杂烩
一.实用的 1.代替 cat 的工具:bat,支持语法高亮.同时显示行号,使用: bat xx.yyy 安装:brew install bat 2.man 命令的替代品:tldr 安装:brew in ...
- django中的认证与登录
认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1 authenticate(**credentials) 提供了用户认证,即验证用户名以及密码是否 ...
- MySQL数据库语法-多表查询练习一
MySQL数据库语法-多表查询练习一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的多表查询的外键约束,以及如何使用外链接和内连接查询数据信息. 一.数据表和测试 ...