美文网首页
(一)Golang概述(1)

(一)Golang概述(1)

作者: 21号新秀_邓肯 | 来源:发表于2020-05-08 14:08 被阅读0次

1. Golang的学习方向

  • 区块链研发工程师
  • Go服务器端 / 游戏软件工程师
  • Golang分布式 / 云计算软件工程师

2.如何快速掌握技术

image.png

3. Google 创造 Golang 的原因

  • 计算机硬件技术更新频繁, 性能提高很快. 目前主流的编程语言发展明显落后于硬件,不能合理利用<font color='red'>多核多CPU</font>的优势提升软件系统性能.

  • 软件系统复杂度越来越高, 维护成本越来越高, 目前<font color='red'>缺乏一个足够简洁高效的编程语言</font>.

    现有的编程语言缺陷:

    • 1.风格不统一
    • 2.计算能力不够
    • 3.处理大并发不够好
  • 企业运行维护很多C/C++的项目, C/C++程序运行速度虽然很快, 但是编译速度很慢, 同时还存在内存泄漏的一系列的困扰需要解决

4.Golang 的语言的特点

Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:

Go = C + Python

说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

  1. 从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和 C 语言一样的编译执行方式及弱化的指针

举一个案例(体验):

//go 语言的指针的使用特点(体验)
func testPtr(num *int) {
    *num = 20
}
  1. 引入<font color='red'>包的概念</font>,用于组织程序结构, <font color='red'>Go 语言的一个文件都要归属于一个包</font>,而不能单独存在。
//一个go文件需要在一个包下
package main

import "fmt"
func sayOk() {
    //输出一句话
    fmt.Println("Ok")
}
  1. 垃圾回收机制, 内存自动回收, 不需要开发者管理

  2. <font color='red'>*天然并发</font>

  • (1) 从语言层面支持并发,实现简单
  • (2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。
  • (3) 基于 CPS 并发模型(Communicating Sequential Processes )实现
  1. 吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute之间的相互通信。

  2. 函数可以返回多个值。

//写一个函数,实现同时返回 和,差
//go 函数支持返回多个值
func getSumAndSub(n1 int, n2 int) (int, int ) {
    sum := n1 + n2 //go 语句后面不要带分号.
    sub := n1 - n2
    return sum , sub
}
  1. 新的创新:比如切片 slice、延时执行 defer

相关文章

  • (一)Golang概述(1)

    1. Golang的学习方向 区块链研发工程师 Go服务器端 / 游戏软件工程师 Golang分布式 / 云计算软...

  • 论golang是世界上最好的语言

    概述 golang is a better C and a simple C++ golang主要特性 1、语法简...

  • 006-golang中XML文件的处理

    golang中XML文件的处理 一.概述 在golang中 包"encoding/xml" 提供了对xml文件的...

  • golang基础之数据类型

    一、概述 在golang中会涉及变量(var声明)、常量(const)、枚举(golang从语法上没有enum的定...

  • golang反射框架Fx

    一、概述 Fx是一个golang版本的依赖注入框架,它使得golang通过可重用、可组合的模块化来构建golang...

  • RabbitMQ入门学习3 - Go Package实现

    1. 概述 RabbitMQ在生产环境的应用Tips,基于Golang。 2. 基础功能 基础功能包含Exchan...

  • seaweedfs部署文档

    1.seaweedfs的概述seaweedfs是一个非常优秀的由golang开发的分布式存储开源项目。它是用来存储...

  • 1、初识 Go 语言

    1 概述 什么是 Go 语言?首先献上 Go 官网(https://golang.org/)上的一句话: Go i...

  • golang嵌入式开发

    一、项目概述 本项目是golang嵌入式开发方法,主要是为嵌入式开发平台打造,基于cgo实现了golang对于/d...

  • 非docker部署fabric2.2.0网络

    环境:macdocker 2.5.0.1golang 1.14.4fabric 2.2.0 概述 一般我们部署fa...

网友评论

      本文标题:(一)Golang概述(1)

      本文链接:https://www.haomeiwen.com/subject/hvdfnhtx.html