一、官网查看系列

Golang官网:https://golang.org/

Golang中文网:https://studygolang.com/(推荐)

项目学习网站: https://gowalker.org/

二、简介

Go语言是编译型、静态类型的类C的语言,并带有GC(垃圾收集器,garbage collection)。这意味着什么?

另外,Go是一种非常严格的语言,它几乎总是要求我们"以标准答案去答题",在其它语言可以容忍的不规范编码方式在Go语言中几乎都会抛异常。例如导入了包却没有使用这个包,Go不会去编译它并报错。再例如,定义了一个变量但从来没用过,也会报错。

初学Go的时候,这可能是件无比的苦恼事情,但习惯了之后,编写出来的程序自然是无比规范的。这也正是Go和不少语言的区别:其它语言编码、调试阶段可能很快,但维护和优化阶段可能会非常长;而Go的编码周期可能稍长,但编码完成后几乎都是足够优化的,维护和优化周期足够短

解释一:Go语言类似C语言,属于编译性语言

编译表示的是将你所写的源代码转换为低层次的语言,例如汇编语言(go采用此底层语言),或者其它中间的语言(如Java、C#编译成字节码)。

编译型语言可能不太友好,因为编译的过程速度很慢。如果一个程序的编译过程就需要花几分钟甚至几小时,那么程序的版本迭代可能会很难进行下去。编译速度是Go语言的一个主要设计目标,值得庆幸的是,Go的编译速度很快,即便对于习惯于使用解释型语言的人来说,它也还是快。

编译型语言虽然编译过程慢,但这类语言在运行阶段可能会更快,而且运行时不再需要加载额外的依赖。

解释二:静态语言

静态语言意味着变量必须要指定数据类型(int,string,bool,[]byte等)。虽然必须指定数据类型,但除了在声明变量的时候显式指定数据类型,也可以让Go自己去推断数据类型(稍后有示例)。

对于习惯于使用动态型语言的人来说,可能会感觉静态型语言很笨重,事实确实如此。但静态有静态的好处,特别是配合编译操作的时候。

关于静态和动态数据类型,要说的内容其实很多很多,毕竟对于一门语言来说,数据类型牵一发而动全身,无论是静态、还是动态型语言,都因此而衍生出无数的优、缺点。

解释三:语法相对严格

语法上比较严格,比如

func mian(){
}
func mian()
{
  //语法上不允许,报错
}

GO 基础学习笔记(1) | 简介的更多相关文章

  1. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  2. Maven基础学习笔记

    Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...

  3. 【C#编程基础学习笔记】4---Convert类型转换

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...

  4. 【C#编程基础学习笔记】6---变量的命名

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...

  5. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  6. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  7. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  8. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  9. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

随机推荐

  1. Formform

    知识预览 一 Django的form组件 二 Django的model form组件 三 Django的缓存机制 四 Django的信号 五 Django的序列化 回到顶部 一 Django的form ...

  2. orm加强版

    目录 十三式 2式(针对外键查询优化) select_related和prefetch_related prefetch_related 查询返回值类型 不等式查询 关键字查询 时间查询 跨表查询 组 ...

  3. python模块常用用法

    1.time模块(※※※※) import time #导入时间模块 print(time.time()) #返回当前时间的时间戳,可用于计算程序运行时间 print(time.localtime() ...

  4. 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(1)

    .NET Core 3.0已经发布了,除了一大堆令人激动的功能以外,也增加了对WPF的正式支持, 那么WPF在.NET Core 3.0下的开发体验如何呢? 本文利用了Stylet框架开发.NET C ...

  5. Bootstrap Studio Mac网页设计神器

    Bootstrap Studio Mac网页设计神器 美丽的组件 Bootstrap Studio附带了大量漂亮的组件,用于构建响应式页面.我们有页眉,页脚,画廊,幻灯片甚至基本元素,如跨度和div. ...

  6. java学习4-面向对象(上)

    1.类和对象 修饰符可以是public.final.abstract或者完全省略这三个修饰符 类名命名规则:每个单词首字母大写,其他字母全部小写,单词与单词之间不使用分隔符 修饰符:可以省略,也可以是 ...

  7. Redis事务深入解析和使用

    作为关系型数据库中一项非常重要的基础功能--事务,在 Redis 中是如何处理并使用的? 1.前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命 ...

  8. Jetcache

    转存 Jetcache https://github.com/alibaba/jetcache/wiki/GettingStarted_CN

  9. linux 下ln命令--笔记

    linux 下ln命令 ln命令用来为文件创建连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接.如果要创建符号连接必须使用"-s"选项.注意:符号链接文件不是一个独立 ...

  10. mySQL的安装过程---二进制和源码安装

    安装 mysql 源码包安装 优化基础源 [root@db03 ~]# vim /etc/yum.repos.d/CentOS-Base.repo 安装依赖包 [root@db03 ~]# yum i ...