go环境搭建_学习的golang第一步,搭建我们运行的环境,go! go! go

f5329671765d1248576818199ee9bb9a.png

这是Golang教程系列中的第一个教程。本教程介绍了Go,并讨论了选择Go优于其他编程语言的优势。我们还将学习如何在Mac OS,Windows和Linux中安装Go。

介绍

Go也称为Golang是由Google开发的一种开源,编译和静态类型的编程语言。创造Go的关键人物是Rob Pike, Ken Thompson和Robert Griesemer。Go于2009年11月公开发布。

Go是一种通用编程语言,具有简单的语法,并由强大的标准库提供支持。Go闪耀的关键领域之一是创建高度可用且可扩展的Web应用程序。Go还可用于创建命令行应用程序,桌面应用程序甚至移动应用程序。

Go的优点

当有大量其他语言(如python,ruby,nodejs ......)执行相同的工作时,为什么要选择Go作为服务器端编程语言。

以下是我选择Go时发现的一些优点。

语法简单

语法简单明了,语言不会因不必要的功能而膨胀。这使得编写可读和可维护的代码变得容易。

易于编写并发程序

并发是该语言的固有部分。因此,编写多线程程序是件小事。这是由Goroutines和渠道实现的,我们将在即将到来的教程中讨论。

编译语言

Go是一种编译语言。源代码被编译为本机二进制文件。在诸如nodejs中使用的JavaScript之类的解释语言中缺少此功能。

快速编译

Go编译器非常精彩,它的设计从一开始就很快。

静态链接

Go编译器支持静态链接。所有Go代码都可以静态链接到一个大的二进制文件中,并且可以轻松地部署在云服务器中,而不必担心依赖性。

工具

工具在Go中值得特别提及。Go捆绑了强大的工具,可以帮助开发人员编写更好的代码。很少有常用的工具,

  • gofmt - gofmt用于自动格式化源代码。它使用标签进行缩进和空白以进行对齐。
  • vet - vet分析go源代码并报告可能的可疑代码。兽医报告的所有内容都不是真正的问题,但它有能力捕获编译器未报告的错误,例如使用Printf时格式说明符不正确。
  • golint - golint用于识别代码中的样式问题。

垃圾回收

Go使用垃圾回收,因此内存管理非常谨慎,开发人员无需担心管理内存。这也有助于轻松编写并发程序。

简单的语言规范

语言规范非常简单。在整个规范适合在一个页面上,你甚至可以用它来写你自己的编译器:)

开源

最后但并非最不重要的是,Go是一个开源项目。您可以参与Go项目并为其做出贡献。

使用Go构建的热门产品

以下是一些使用Go构建的流行产品。

  • Google使用Go开发了Kubernetes(k8s)。
  • Docker是世界着名的容器平台,采用Go开发。
  • Dropbox已将其性能关键组件从Python迁移到Go。

安装

所有三个平台Mac,Windows和Linux都支持Go。您可以从https://golang.org/dl/下载相应平台的二进制文件

苹果系统

从https://golang.org/dl/下载Mac OS安装程序。双击即可开始安装。按照提示操作,这应该在/ usr / local / go中安装Golang,并且还将文件夹/ usr / local / go / bin添加到PATH环境变量中。

Windows

从https://golang.org/dl/下载MSI安装程序。双击以开始安装并按照提示进行操作。这将在位置c:Go中安装Go,并将目录c:Gobin添加到路径环境变量中。

Linux的

从https://golang.org/dl/下载tar文件并将其解压缩到/usr/local。

将/usr/local/go/bin添加到PATH环境变量。这应该在Linux中安装Go。

在下一部分Golang教程第2部分:本系列的Hello World中,我们将设置Go工作区并编写我们的第一个Go程序:)

请提供宝贵的反馈和意见。谢谢阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Java中将数组转换为列表

你好朋友, 在本教程中,我们将学习将数组转换为List的各种方法。 package com.blogspot.javasolutionsguide;import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils;import java.util.ArrayList; import ja…

html5网页制作代码_HTML5的网页设计教程

关注小编,教你如何制作网页HTML5是超文本标记语言(HyperText Markup Language)的第五代版本,它是书写网页代码的一种规范、一种标准。它通过标记符号来标记要显示的网页中的各个部分。浏览器根据这个标准显示其中的内容(如:文字如何处理&…

java命令框编译代码的方式_在命令行模式下如何编译运行Java代码

由于已经习惯了在Windows环境中进行开发,最近在尝试将开发环境转移到Linux上面。遇到一篇值得参考的外文,特翻译记录一下。【只翻译了部分】一直被集成开发环境和自动构建工具“溺爱”着,我最近意识到我居然一点儿都不会在命令行模式下去运行…

hibernate jpa_JPA /Hibernate刷新策略初学者指南

hibernate jpa介绍 在我以前的文章中,我介绍了实体状态转换 对象关系映射范例。 当刷新当前持久性上下文时,所有管理实体状态转换都将转换为关联的数据库语句。 Hibernate的刷新行为并不总是像人们想象的那样明显。 后写 Hibernate尝试将持久性上下文刷…

aop+注解 实现对实体类的字段校验_SpringBoot实现通用的接口参数校验

来自:掘金,作者:cipher链接:https://juejin.im/post/5af3c25b5188253064651c76原文链接:http://www.ciphermagic.cn/spring-boot-aop-param-check.html本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义…

java基础分享_一、java基础教程

1、java是一门比较纯粹的面向对象编程语言,所以java的所有代码都必须写在类的内部。1.1 java的可执行文件后缀名是".java",例如HelloWorld.java,并且每个可执行文件内部,必须有且仅有一个public公共类/公共接口/公共抽象…

Spring Boot自定义横幅生成

每当我们启动Spring Boot应用程序时,都会显示如下所示的文本消息。 这称为横幅。 现在,如果我们可以创建一个特定于我们的Spring Boot应用程序的自定义横幅并使用它代替默认的Spring Boot横幅,那将不是一件很棒的事。 有很多方法可以生成和使…

java简单递归算法_java递归算法的简单示例

java递归算法的简单示例今天参加笔试,要求用递归实现1357……没写出来,蛋疼。。。。下面复习一下,自己尝试着写还是没有写出来。。。。。没有写出来的关键是自己不知道该如何实现求和、实现出口递归实现的关键是:1.出口的设计2.递…

java等待_Java学习:等待唤醒机制

等待唤醒机制线程的状态NEW 至今尚未启动的线程处于这种状态RUNNABLE 正在Java虚拟机中执行的线程处于这种状态BLOCKED 受阻塞并等待某个监视器锁的线程处于这种状态WAITING 无限期的等待另一个线程来执行某一待定操作的线程处于这种状态TIMED_WAITNG 等待另一个线程来执行取…

游戏ai 行为树_游戏AI –行为树简介

游戏ai 行为树游戏AI是一个非常广泛的主题,尽管有很多资料,但我找不到能以较慢且更易理解的速度缓慢介绍这些概念的东西。 本文将尝试解释如何基于行为树的概念来设计一个非常简单但可扩展的AI系统。 什么是AI? 人工智能是参与游戏的实体表现…

java适配器模式应用_java笔记--适配器模式的运用

适配器模式的运用主要应用:可以在符合OCP原则(开笔原则)的基础上,为类增加新的功能。在现有功能上添加新的功能时无须修改原有功能代码。主要角色:目标角色:就是期待得到的接口,如给汽车添加GPS的接口;源角色&#xff…

java构造器_Java构造器就是这么简单!

前言理解构造器之前,首先我们需要了解Java中为什么要引入构造器,以及构造器的作用。在很久之前,程序员们编写C程序总会忘记初始化变量(这真的是一件琐碎但必须的事),C引入了 构造器(constructor) 的概念&am…

JavaFX技巧32:需要图标吗? 使用Ikonli!

动机 自2013年以来,我一直在编写JavaFX应用程序和库的代码,它们的共同点是,我需要找到可以用于它们的良好图标/图形。 作为前Swing开发人员,我首先使用图像文件,GIF或PNG。 通常,我会从IconExperience&…

mysql索引是什么 优点和缺点_mysql索引的类型和优缺点

现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。索引是一种特殊的文件…

pycharm和python在mac里安装_MAC安装python-opencv及在pycharm下的配置

基础:Mac os 10.13.4;pycharm2018.1;Python3.6.5小白一个,某日突发奇想,想利用opencv实现面部识别,但在网上查了一圈,在配置时都太麻烦,什么下载源码,用Xcode或者CMake编…

内置对象和内置函数_内置假对象

内置对象和内置函数尽管模拟对象是进行单元测试的理想工具,但通过模拟框架进行模拟可能会将您的单元测试变成难以维护的混乱。 这种复杂性的根本原因是我们的对象太大。 他们有很多方法,这些方法返回其他对象,这些对象也有方法。 当将此类对…

java应用部署docker_Docker部署JavaWeb项目实战

摘要:本文主要讲了怎样在Ubuntu14.04 64位系统下来创建一个执行Java web应用程序的Docker容器。一、下载镜像、启动容器1、下载镜像先查看镜像docker images记住这个Image ID,下面我们启动容器须要用到它。假设看到以上输出,说明您能够使用“…

python解析http数据包_如何在python中嗅探HTTP数据包?

I want to sniff all the HTTP packets in my computer via python(version2.6.. is this possible? can I do it with scapy, or without other external modules?解决方案Scrapy is only for extracting data from webpages or similar structured documents.To actually r…

如何用Java创建不可变的Map

你好朋友, 在本教程中,我们将看到如何用Java创建不可变的Map。 –不可变的类或对象是什么意思? –什么是不可变地图? –如何在Java中创建不可变的Map? 不变的类或对象是什么意思? 不可变的类或对象是创…

quartz java 线程 不释放_java Quartz 内存泄漏

我用定时器启动应用的时候发现内存泄漏,具体报错如下:十月 30, 2015 2:30:12 下午 org.apache.catalina.startup.HostConfig undeploy信息: Undeploying context [/ChinaMoney Maven Webapp]十月 30, 2015 2:30:15 下午 org.apache.catalina.loader.Weba…