1,Go语言的核心开发团队-三个大牛

Ken Thompson(肯·汤普森):1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言,同时也是C语言的主要发明人。

Rob Pike(罗布·派克):曾是贝尔实验室(Bell Labs)的Unix团队,和Plan9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8字元编码。

Robert Griesemer:曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。

2,Go语言特点或优势

1)可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了;

2)Go 语言是既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高;

3)天然并发(重要特点);

(1)从语言层面支持并发,实现简单
(2)goroutine,轻量级线程,可实现大并发处理,高效利用多核。
(3)基于CPS并发模型(Communicating Sequential Processes)实现

4)内置runtime,支持垃圾回收

5)从C语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针,并且内嵌C支持,Go里面也可以直接包含C代码,利用现有的丰富的C库;

  //go 语言的指针的使用特点(体验)
  func testPtr(num*int){
    *num=
  }

6)引入包的概念,用于组织程序结构,Go 语言的每一个文件都要归属于一个包,而不能单独存在

7)新的创新:比如切片slice、延时执行defer。

3,安装开发环境

SDK 下载地址:Golang 中国 https://www.golangtc.com/download

其中bin目录下就是go的指令,src目录下就是源代码

使用go.exe可以编译和运行我们的go源码

添加环境变量

测试

4,hello world测试

1)开发时,先建立相对规范的目录结构

 2)编写代码(这里使用的编辑工具是VSCoce,https://code.visualstudio.com/download)

(1)go文件的后缀是.go
(2)package main表示该hello.go文件所在的包是main,在go中,每个文件都必须归属于一个包。
(3)import“fmt”
  表示:引入一个包,包名fmt,引入该包后,就可以使用fmt包的函数,比如:fmt.Println
(4)func main(){
  }

  func是一个关键字,表示一个函数。
  main是函数名,是一个主函数,即我们程序的入口。
(5)fmt.Println(“hello, world”)
  表示调用fmt包的函数Println输出“hello,world”

 3)通过go build命令对该go文件进行编译,生成.exe文件

4)运行hello.exe文件即可

5)注意:通过go run命令可以直接运行hello.go程序[类似执行一个脚本文件的形式]

Go语言中包含了大量用于处理Go语言代码的命令和工具。其中,go命令就是最常用的一个,它有许多子命令。这些子命令都拥有不同的功能,如下所示。
build:用于编译给定的代码包或Go语言源码文件及其依赖包。
 clean:用于清除执行其他go命令后遗留的目录和文件。
 doc:用于执行godoc命令以打印指定代码包。
 env:用于打印Go语言环境信息。
 fix:用于执行go tool fix命令以修正给定代码包的源码文件中包含的过时语法和代码调用。
 fmt:用于执行gofmt命令以格式化给定代码包中的源码文件。
 get:用于下载和安装给定代码包及其依赖包(提前安装git或hg)。
 list:用于显示给定代码包的信息。
run:用于编译并运行给定的命令源码文件。
 install:编译包文件并编译整个程序。
 test:用于测试给定的代码包。
 tool:用于运行Go语言的特殊工具。
 version:用于显示当前安装的Go语言的版本信息。

5,Golang执行流程分析

有了go源文件,通过编译器将其编译成机器可以识别的二进制码可执行文件,即可以直接运行的文件。

6,go程序开发注意事项

1)Go源文件以"go”为扩展名。

2)Go 应用程序的执行入口是main()函数。

3)Go 语言严格区分大小写。

4)Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性。

5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错

6)go语言定义的变量或者import的包如果没有使用到,代码不能编译通过。

7,go语言的转义字符(escape char)

)t:表示一个制表符,通常使用它可以排版。
)n:换行符
):一个\
)":一个"
)r:一个回车

8,注释和代码规范

1)行注释

//注释内容

2)块注释(多行注释)

/*
注释内容
*/

对于代码的规范,可以看源码,或者用gofmt命令 来进行格式化

gofmt hello.go

9,API查询和论坛

https://go-zh.org/

https://studygolang.com/pkgdoc

https://studygolang.com/

韩顺平go语言教程笔记

go语言入门(1)的更多相关文章

  1. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  2. 我为什么反对推荐新人编程C/C++语言入门?

    虽然我接触编程以及计算机时间比较早,但是正式打算转入程序员这个行当差不多是大学第四年的事情 从03年接触计算机,07年开始接触计算机编程, 期间接触过的技术包括 缓冲区溢出(看高手写的shellcod ...

  3. 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书

    <C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...

  4. c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...

  5. 【转】c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...

  6. Swift语言入门之旅

    Swift语言入门之旅  学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...

  7. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  8. 【南阳OJ分类之语言入门】80题题目+AC代码汇总

    小技巧:本文之前由csdn自动生成了一个目录,不必下拉一个一个去找,可通过目录标题直接定位. 本文转载自本人的csdn博客,复制过来的,排版就不弄了,欢迎转载. 声明: 题目部分皆为南阳OJ题目. 代 ...

  9. C语言入门(21)——使用DBG对C语言进行调试

    C语言入门(21)--使用DBG对C语言进行调试 程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码 ...

  10. C语言入门(7)——自定义函数

    C源程序是由函数组成的.虽然在C语言入门系列前面几篇的程序中大都只有一个主函数main(),但实用程序往往由多个函数组成.函数是C源程序的基本模块,通过对函数模块的调用实现特定的功能.C语言中的函数相 ...

随机推荐

  1. C# 后台服务 web.config 中 项“ConnectionString”已添加。问题

    是自己在一网站下建了虚拟目录.原本网站为空,后来自己改了路径,有了默认配置很久后打开原本ok的虚拟目录,坑爹了.杯具了.代码:ConfigurationManager.ConnectionString ...

  2. 一百二十四:CMS系统之首页导航条和代码抽离

    模板抽离 由于前后台的模板有些需要的元素如,js,css是相同的,这里抽离出来做base模板 {% from "common/_macros.html" import static ...

  3. [windows] install cross-env with cnpm instead of yarn or npm

    环境是 windows下通过vagrant运行虚拟机(ubuntu) Host:windows 10 Guest: ubuntu(vagrant) 根据之前的经验,不要在 Guest环境中执行npm ...

  4. 不知道AI这三点优势,你可能真的要被淘汰

    不知道 AI 这三点优势,你可能真的要被淘汰 我们正处于飞速发展的数字化转型时期,这是由巨大的市场转变驱动的--即人工智能和机器学习. 同时,随着AI 和机器学习技术的普及,从中获益的不仅仅是大型企业 ...

  5. Python3 Selenium自动化web测试 ==> 第六节 WebDriver高级应用 -- 操作web页面的滚动条

    学习目的: 掌握页面元素定位以外的其他重要知识点. 正式步骤: 测试Python3代码 # -*- coding:utf-8 -*- from selenium import webdriver fr ...

  6. Centos7端口映射

    开启tomcat后,访问需要加端口号8080才能访问,在不改变tomcat默认端口号的情况下,添加nat的端口映射,将80端口映射到8080端口,即可实现不加8080访问. 向nat表的 PREROU ...

  7. 安装tacker

    安全服务链编排系统安装部署文档 本系统基于OpenStack Pike版本安装,在安装tacker之前,请确保以下模块都已正确安装部署:keystone,mistral,barbican,horizo ...

  8. NLP 对抗方法整理

    NLP中对抗应用 1. 分词 , 可以用GAN来做,消除不同分词器的差异性 2. 风格迁移, 这个在图像中应用较多,在NLP中同样可行 3. 提高问答系统/阅读理解的性能. 4. 机器翻译应该也可以做 ...

  9. 灾备系统 RTO与RPO

    出处: https://blog.51cto.com/se7en/1085442 http://www.iso27001.org.cn/fuwu/it/iso22301/show_511.html h ...

  10. Android Application的基本组件介绍

    一个Android应用通常由一个或多个基本组件组成,常用的一般有Activity.Service.BroadcastReceiver.ContentProvider.Intent等等. ⒈Activi ...