之前用过一小段时间Go,但是没有系统的学习过,现在想系统的从基础过一遍,为了节约时间,本次学习参考的是

参考李文塔著的《Go语言核心编程》,非我原创

1. Go基础认识

1.1 Go诞生的原因

  • (1) 当前的编程语言对于并发支持不是很友好,不能很好发挥多核CPU的性能
  • (2) 程序规模越来越大,编译的速度很慢,解决快速编译程序是迫切的需求
  • (3) 现有的编程语言设计很复杂,由于历史的原因,有一些特性设计很不优雅,程序员费更多精力关注语法细节而不是问题的本身

1.2 Go语言的特性

相比其他高级语言,Go的有一些特性是不能比的

  • 支持静态类型和运行时的动态类型,还支持隐式类型推导
  • 支持type自定义类型
  • 类型组合支持面向对象
  • 接口支持Duck模型
  • 直接编译成可执行程序
  • 直接基于OS的运行
  • 支持自动垃圾回收
  • 语言原生支持并发
  • 支持交叉编译
  • 支持跨平台

2. Go词法单元

2.1 token

2.2 关键字

  • 引导程序整体结构

    • package:定义包名
    • import:导入包名
    • const:常量声明
    • var:变量声明
    • func:函数定义
    • defer:延迟执行
    • go:并发语法糖
    • return:函数返回
  • 声明符合数据结构
    • struct:定义结构类型
    • interface:定义接口类型
    • map:声明或者创建map类型
    • chan:声明或者创建通道类型
  • 控制程序结构
    • if else:条件分支
    • for range break continue:循环
    • switch select type case default fallthrough:switch和select语句
    • goto:跳转语句

参考<<Go语言核心编程>> 李文塔著

go语言核心编程_Go核心编程 - 语言特性(1)相关推荐

  1. python语言开发平台_Go+Python双语言混合开发

    装饰器的实质是什么?或者说为什么装饰器要写2层嵌套函数,里层函数完全就已经实现了装饰的功能为什么不直接用里层函数名作为装饰器名称? 答:装饰器是要把原来的函数装饰成新的函数,并且返回这个函数本身的高阶 ...

  2. c语言编程从入门到精通+pdf下载,编程大讲坛 C语言核心开发技术从入门到精通 陈强 pdf扫描版...

    编程大讲坛 C语言核心开发技术从入门到精通由浅入深地讲解了c语言开发技术,以遵循科学合理的学习计划为主线,通过典型实例来讲解其具体使用.全书内容分为20课,其中第1-8课依次讲解了c语言概述.c语言算 ...

  3. Scala核心编程 第一章—Scala语言概述

    一.Scala语言解释 1.什么是Scala语言 Spark-新一代内存级大数据计算框架,是大数据的重要内容. Spark就是使用Scala编写的.因此为了更好的学习Spark, 需要掌握Scala这 ...

  4. go interface类型转换_Go语言的九大核心特性主要有哪些?

    Go语言之所以厉害,是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接.简单.高效.稳定的方式来解决问题.这里给大家讲解一下Go的核心特性. 并发编程 Go语言在并发编程方面比绝大多数语言要简洁 ...

  5. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...

    之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言​zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...

  6. 编程爱好者学vb还是python-Python语言为什么被称为高级程序设计语言?

    Python是一种令人惊叹的编程语言,毫无疑问.从1991年的卑微开始,它现在几乎无处不在.无论您是在进行Web开发,系统管理,测试自动化,devop还是数据科学,Python在您的工作中发挥作用的可 ...

  7. 编程学习初体验(4. 编程的核心)

    初学编程的朋友,总觉得写程序是件单纯的事情:知道如何使用一种语言,熟悉一个开发环境,了解系统的编程接口(API)就已经能够成为一个合格的程序员 了.在我刚刚接触编程学习的时候,我也是这么认为的.这种认 ...

  8. “主要的编程范型”及其语言特性关系(多图)

    "主要的编程范型"(The principal programming paradigms)这幅图,其实出现得不算早,作者在2007年完成了该图的1.0版,到2008年更新至v1. ...

  9. 机器人编程与python语言的区别_儿童编程和机器人编程有啥区别?

    这是最全面的回答!一篇文章让你彻底了解少儿编程和机器人编程的区别! 虽然都带有"编程"二字,但少儿编程和机器人编程还是有本质区别的,有哪些不一样呢? 偷懒的家长可以直接看下面这张表 ...

最新文章

  1. asp.net利用Web Service实现短信发送致手机
  2. Tabhost嵌套以及Tab中多个Activity跳转的实现
  3. 面试金典--min栈的实现
  4. Hadoop常见异常及其解决方案
  5. c语言中指,浅析C语言中指与数组.doc
  6. 14.并发容器之ConcurrentHashMap(JDK 1.8版本)
  7. 第八届育才杯机器人比赛_赛场、名单公布!南海区第八届“献血者杯”羽毛球公开赛“羽”你相约本周六...
  8. python colormap_Python科学计算技巧积累八——colormap 和 contour map的绘制
  9. kill-9导致weblogic无法启动
  10. ZUST-CCCC选拔赛(L1,L2部分题解)
  11. 如何清理 Linux 系统开机启动项?
  12. leetcode77
  13. 毕设题目:Matlab优化覆盖
  14. Server concepts 详解
  15. 在html5中插入flash,如何将Flash嵌入到HTML5中?
  16. C语言爱心代码,C语言爱心代码合集(附源码)
  17. 数据分析 - Kaggle TMDB 票房预测
  18. STM32 vcap引脚
  19. 华为手机遮挡html页面,手机知识:华为手机老是显示屏幕被遮挡
  20. JAVAWeb富文本编辑器文件上传操作

热门文章

  1. Android WebRTC视频旋转问题
  2. pat1014. Waiting in Line (30)
  3. 博客园电子月刊[第一期]
  4. flink 自定义 窗口_【Flink 精选】阐述 Watermark 机制,剖析 Watermark 的产生和传递流程...
  5. split函数python 未定义_Python字符串方法split()中的一道坑
  6. 函数调用关系图如何画_乌鲁木齐126中一校三址关系图出炉!佳源和绿谷应该如何选择?...
  7. mysql数据库5.7配置文件_MySQL 5.7配置文件参考
  8. 3d点击_gooood合辑:3D打印 | 精选全部3D打印案例
  9. 定时任务scheduleAtFixedRate设定每天某个时刻执行
  10. java 编写异常_Java基础编程之异常处理