GO 基础学习笔记(1) | 简介
一、官网查看系列
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) | 简介的更多相关文章
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Maven基础学习笔记
Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
- 【C#编程基础学习笔记】6---变量的命名
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
随机推荐
- PMP涉及的几个工作系统
PMP涉及的几个工作系统 工作系统作为事业环境因素,提高或限制项目管理的灵活性,并可能对项目结果产生积极或消极影响,包括项目管理系统.项目管理信息系统PMIS.配置管理系统.变更控制系统.合同变更 ...
- luogu P2210 Haywire
[返回模拟退火略解] 题目描述 一数轴上有 nnn 个点,有 nnn 个环,求一种组合方案,使得所有边长度和最小. Solution 2210\text{Solution 2210}Solution ...
- [51nod1670] 打怪兽
lyk在玩一个叫做“打怪兽”的游戏.游戏的规则是这样的.lyk一开始会有一个初始的能量值.每次遇到一个怪兽,若lyk的能量值>=怪兽的能量值,那么怪兽将会被打败,lyk的能量值增加1,否则lyk ...
- [HDU5001]Walk
Problem Description I used to think I could be anything, but now I know that I couldn't do anything. ...
- opencv实践::直线检测
问题描述 寻找英语试卷填空题的下划线,这个对后期的切图与自动 识别都比较重要. 解决思路 方法: 通过图像形态学操作来寻找直线,霍夫获取位置信息与显示. #include <opencv2/op ...
- 1.Linux-CentOS7.6安装教程
了解Linux Linux 就是一个操作系统,主要为企业提供支持与服务. 学习Linux需要具备什么基础?能看懂中文,能看懂简单的 English 1.什么是Linux? Linux:和我们常见的 ...
- chrome devtools tip(2)--自定义代码片段,构建你的工具箱
平常开发中,有些代码片段常常用到的,比如,获取 url 参数,rgb转16进制,打印下当前页面的性能数据,给所有的 span 加个样式, 防抖节流,fetch接口,类似 jquery这样的顺手 选择 ...
- Redis真集群安装
Redis真集群安装 命令文档:http://redisdoc.com/index.html 下载:https://code.google.com/archive/p/redis/downloads ...
- 无情的Java 8 之 Stream和lambda表达式篇
不好意思,最近刷小视频刷的有点上头 看到这图就不自觉的要来一句:"卧槽,无情" 好了,我要开始正经了 JAVA 8 已经推出有一段时间了, 相比之前, 我们操作集合的方式应该是这样 ...
- Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第27篇. 本篇文章我们先来 ...