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)的第五代版本,它是书写网页代码的一种规范、一种标准。它通过标记符号来标记要显示的网页中的各个部分。浏览器根据这个标准显示其中的内容(如:文字如何处理&…

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学习:等待唤醒机制

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

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

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

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

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

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

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

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

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

如何用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…

在ultraedit查找每行第二个单词_新手收藏!亚马逊关键字查找

亚马逊销售中最重要的是“排名”。而“关键字”对提高排名很重要。搜索结果对亚马逊的销售产生重大影响。要想让你的产品被显示在搜索结果的顶部,那你必须选择有效的关键字。搜索关键词排名一直上不去,你可能会这么想:“关键字不好吧......。…

java opencv磨皮算法_使用OPENCV简单实现具有肤质保留功能的磨皮增白算法

在一个美颜高手那里发现一个美颜算法,他写出了数学表达式,没有给出代码,正好在研究OPENCV,顺手实现之。具体过程就是一系列矩阵运算,据说是从一个PS高手那里研究 出来的,一并表示感谢。这是数学表达式&…

junit单元测试断言_简而言之,JUnit:单元测试断言

junit单元测试断言简而言之,本章涵盖了各种单元测试声明技术。 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 。 正在进行的示例扩大了主题,并说明了如何创建和使用自定义匹配器/断言。 单元测试断言 信任但要验证 罗纳德里…

keyshot环境素材文件_KeyShot渲染,打光这么打,效果倍儿棒

有过渲染经验的小伙伴们应该知道,除了需要对渲染软件的操作熟悉外,最重要的莫过于“材质”和“灯光”。而这里,就不得不提到KeyShot,作为工业设计行业必须要掌握的技能之一,它在行业当中的地位可谓独树一帜。除了其操作…

redis种类型对应java类型_Redis的五种基本数据类型介绍

Redis作为缓存具有极其丰富的功能,比如计数器、好友关系以及排行榜等等。而Redis之所能够实现如此强大的功能,完全是依赖着它的基本数据结构。今天我们来看看Redis的五种基本的数据结构,分别是字符串(strings), 散列(hashes)&…

REST /使用提要发布事件

处理事件 当使用多个解耦的服务时(例如,在微服务体系结构中 ),很有可能需要一种将某种域事件从一个服务发布到一个或多个其他服务的方法。 许多广泛采用的解决方案依赖于单独的基础结构来解决此问题(例如事件总线或消…

hibernate自动配置_Hibernate自动冲洗的黑暗面

hibernate自动配置介绍 既然我已经描述了JPA和Hibernate刷新策略的基础知识 ,我就可以继续阐明Hibernate的AUTO刷新模式的令人惊讶的行为。 并非所有查询都会触发会话刷新 许多人会认为Hibernate 总是在执行任何查询之前先刷新Session。 虽然这可能是一种更直观的方…

slf4j注解log报错_SpringBoot自定义日志注解,用于数据库记录操作日志,你用过吗?...

大家好,我是程序员7歌!今天我将为大家讲解如何通过自定义注解记录接口访问日志。一般的开发中,有两种方式可以记录日志信息,第一种:把接口日志信息保存到日志文件中,第二种:把接口操作日志保存到…