【GO语言卵细胞级别教程】01.GO基础知识

01.GO基础知识

目录

  • 01.GO基础知识
    • 1.GO语言的发展历程
    • 2.发展历程
    • 3.Windowns安装
    • 4.VSCode配置
    • 5.基础语法
      • 5.1 第一段代码
      • 5.2 GO执行的流程
      • 5.3 语法规则
      • 5.4 代码风格
      • 5.5 学习网址

1.GO语言的发展历程

Go语言是谷歌公司于2007年开始开发的一种编程语言,由Robert Griesemer、Rob Pike和Ken Thompson共同设计。具有高效、简洁、安全和并发的特点,适用于网络编程、分布式系统等领域。
Go语言的设计目标是提供一种简单、高效、可靠的编程语言,适用于大规模分布式系统开发。

2.发展历程

2007年:Go语言的设计开始。

2009年:Go语言的第一个版本发布,同时开源。

2012年:Go语言的第一个稳定版本发布。

2016年:Go语言成为GitHub上最受欢迎的编程语言之一。

2020年:Go语言的最新版本Go 1.15发布。

在中国,Go语言的发展也非常迅速。自从Go语言开源以来,国内就有不少开发者开始关注和使用它。随着互联网的发展,越来越多的公司开始使用Go语言开发后端服务,如腾讯、阿里巴巴、美团等。

同时,国内也有不少Go语言社区和开源项目,如Go中国、GoFrame、Gin等。总体来说,Go语言在中国的发展非常活跃,越来越多的开发者开始学习和使用它,未来也有很大的发展潜力。

3.Windowns安装

  1. 下载
    安装包下载地址为:https://go.dev/dl/。
    如果打不开可以使用这个地址:https://golang.google.cn/dl/。
  2. 设置环境变量
    GOROOT 是 Go 语言的安装目录,它指向你的 Go 语言安装的根目录。
    GOPATH 是你的工作区目录,用于存放 Go 语言的源码文件以及安装的第三方包。
  3. 常见错误
    在这里插入图片描述

4.VSCode配置

  1. 下载GO插件
    在这里插入图片描述

  2. 集成 Code Runner插件
    在这里插入图片描述

  3. 单机右键Run code 运行即可
    在这里插入图片描述

  4. vscode 去掉目录折叠
    setting->User->Features->Explorer:去掉Compact Folders在这里插入图片描述

5.基础语法

5.1 第一段代码

  1. 创建代码文件main.go
package main
import "fmt"
func main(){fmt.Println("hello go!")
}
  1. 执行的时候
    (1)先编译:go build --生成了一个 main.exe
    (2)然后执行main即可,main会运行main.exe
  2. 执行也可以使用
    (1)go run main.go会直接帮我们编译执行源文件

5.2 GO执行的流程

在这里插入图片描述

两种执行方法有什么区别?
(1)go build 编译后的文件可以在任意平台上执行
(2)go build -o hello.exe main.go 把main.go 编译成hello.exe
(3)go run运行的时间明显要比第一种方式长一点点

5.3 语法规则

(1)源文件以go为扩展名
(2)程序执行的入口是main函数
(3)严格区分大小写
(4)方法由一条条语句构成的,每一条语句不需要分号(go会自动给加)这也是设计的初衷简洁
(5)Go编译器是一行行进行编译的,因此我们就一行就写一条语句,不能把多余的语句写在同一个,否则报错
(6)定义的变量或者import 的包如果没有使用到,代码就不能通过编译
(7)大括号都是成对出现

5.4 代码风格

(1)注意缩进
(2)括号要成对
(3)运算符两边加空白
(4)注释:推荐行注释

/*
多行注释
*/// 行注释

(5)不能把大括号改变格式

func main()
{// 这里不能换行// 这样的大括号是有问题的 
}

(6)一行不超过80个字符,超过的话使用加号

var name3 = "sadfasldfjkajsdfjalsdfasdkfjalksjdf" +"测试中故宫撒旦发多少发就发司法解释咖啡机阿克苏的风景"

(7)格式化代码

gofmt main.go 打印出正确的格式
gofmt -w main.go 把纠正的格式放在文件中

5.5 学习网址

  1. 手册:官网接口手册:https://golang.org
  2. 手册:中文手册 https://studygolang.com/pkgdoc
  3. 学习网址:包含教学面试各种框架插件等: https://www.topgoer.com/
  4. 学习网址(推荐):GO编程练习的网址,每节都有示例且可以在线运行: https://tour.go-zh.org/basics/1
  5. 学习网址:GO编程练习的网址,每节都有示例代码:英文的:https://gobyexample.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java版直播商城免 费 搭 建:平台规划与常见营销模式,电商源码、小程序、三级分销及详解

【saas云平台】打造全行业全渠道全场景的saas产品,为经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多样的营销玩法覆盖所有经营场景…

游戏引擎?

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、…

使用AOP实现自定义日志

在实现自定义日志之前,我们需要了解AOP。 1.AOP AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过将横切关注点(cross-cutting concerns)从主要业务逻辑中分离出来&…

macOS跨进程通信: XPC 创建实例

一:简介 XPC 是 macOS 里苹果官方比较推荐和安全的的进程间通信机制。 集成流程简单,但是比较绕。 主要需要集成 XPC Server 这个模块,这个模块最终会被 apple 的根进程 launchd 管理和以独立进程的方法唤起和关闭, 我们主app 进…

【运维】界面操作与直接操作

对于一个大型的复杂的系统,各个模块之间紧密关联,界面上的一个操作,可能涉及到很多底层逻辑的连携反应。 在一个共享文件系统中,一个简单的小操作,可能就涉及到数据库多张表的改动,而且往往改动的表并不是…

Flume基础知识(四):Flume实战之实时监控单个追加文件

1)案例需求: 实时监控 Hive 日志,并上传到 HDFS 中 2)需求分析: 3)实现步骤: (1)Flume 要想将数据输出到 HDFS,依赖 Hadoop 相关 jar 包 检查/etc/profile.d…

【MySQL】MySQL运维SQL(持续更新。。。)

MySQL运维SQL 信息统计 查询数据库有多少张表 SELECT COUNT(*) AS table_count FROM information_schema.TABLES WHERE table_schema 数据库名;查询表中有多少个字段 SELECTCOUNT(*) AS field_count FROMinformation_schema.COLUMNS WHEREtable_schema 数据库名 AND tab…

Spark内核解析-Spark shuffle6(六)

1、Spark Shuffle过程 1.1MapReduce的Shuffle过程介绍 Shuffle的本义是洗牌、混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转换成一组具有一定规则…

RFID数据中心智能资产管理系统

数据中心机房承担着保障企业关键数据处理的重要责任,机房的日常管理直接关系到整体机房的日常维护和运行安全,数据资产管理中心在监管机房各部分设备的运行情况、维护数据中心的资产方面发挥着重要的作用。 成功的数据中心机房管理不仅需要选择高可靠性…

游戏分组(100用例)C卷 (JavaPythonC语言C++Node.js)

部门准备举办一场王者荣耀表演赛,有10名游戏爱好者参与,分为两队,每队5人。 每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把10名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。 现在给你10名参与者的游戏水…

NFT 项目入驻 NFTScan Site 流程说明

NFTScan Site 是由数据基础设施 NFTScan 推出的功能强大的 NFT 项目管理平台。NFTScan Site 主要为 NFT Collection、NFT Marketplace、NFTFi 以及其他 NFT 生态项目提供专业的项目管理后台服务和链上数据分析追踪服务。 NFTScan Site 功能: 1)项目信息编…

鸿蒙开发之Touch事件拦截stopPropagation()

在读Touch事件官方文档的时候,遇到了一个属性 其他属性都好理解,这个阻塞事件冒泡什么意思呢?官网也没有解释 后来查资料知道这个方法是阻止onTouch冒泡传递到父组件。 show code Entry Component struct OfficialTouchPage {State messa…

【leetcode100-30】【链表】两两交换链表节点

【题干】 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 【思路】 先说递归的,退出条件很明显,当剩…

键盘符号中英文名称大全

符号中文英文~波浪号tilde反引号,重音号backquote,backtick,grave accent#井号number sign,pound sign,hash mark#!sha-bang|竖线pipe,vertical bar单引号single quote"双引号double quote,quotation mark$美元符号dollar sign.点,句号dot,period,point!感叹号exclamation…

C Primer Plus (中文版)第12章编程练习 参考答案(仅供参考~)

C Primer Plus (中文版)第12章编程练习 参考答案(仅供参考~) 🌴 C Primer Plus第12章编程练习~ 加油加油!🍭 🍭这一章主要是各种存储变量的应用 同时也有多文件应用的题~ 🌈加油,我们…

Java项目:108SSM教务管理系统

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 教务管理系统基于SpringSpringMVCMybatis开发,功能和学生成绩管理系统,学生选课管理系统类似,也可以做学生成绩管理系统…

R语言【base】——do.call():根据名称或函数以及要传递给它的参数列表构造并执行函数调用

Package base version 4.2.0 Parameters do.call(what, args, quote FALSE, envir parent.frame()) 参数【what】:命名要调用的函数的函数或非空字符串。 参数【args】:函数调用的参数列表。参数【args】的 names 属性为参数提供名称。 参数【quot…

C# .Net学习笔记—— 异步和多线程(Task)

一、概念 Task是DotNet3.0之后所推出的一种新的使用多线程的方式,它是基于ThreadPool线程进行封装的。 二、使用多线程的时机 任务能够并发运行的时候,提升速度;优化体验 三、基本使用方法 private void button5_Click(object sender, Ev…

Mysql 动态链接库配置步骤+ 完成封装init和close接口

1、创建新项目 动态链接库dll 2、将附带的文件都删除,创建LXMysql.cpp 3、项目设置 3.1、预编译头,不使用预编译头 3.2、添加头文件 3.3、添加类 3.4、写初始化函数 4、项目配置 4.1、右键解决方案-属性-常规-输出目录 ..\..\bin 4.2、生成lib文件 右…

Android权限申请

目录 1. 静态申请 2. 动态申请 3. 判断权限申请情况 4. 确认权限 在android中所有的权限都需要静态申请&#xff0c;涉及用户隐私的高级权限还需要进行动态申请。 1. 静态申请 在AndroidManifest清单文件中进行申请。 <?xml version"1.0" encoding"u…