当前位置: 首页 > news >正文

【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/

相关文章:

【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 Griese…...

215.【2023年华为OD机试真题(C卷)】按身高和体重排排队(排序题-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-按身高和体重排排队二.解题思路三.题解代码Pyt…...

虚函数(C++)

四、多态4.1 虚函数 四、多态 多态性是面向对象程序设计语言的又一重要特征,多态(polymorphism)通俗的讲,就是用一个相同的名字定义许多不同的函数,这些函数可以针对不同数据类型实现相同或类似的功能,即所…...

力扣25题: K 个一组翻转链表

【题目链接】力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台,解题代码如下: class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode curNode head;ListNode groupHead, groupTail head, lastGrou…...

网络安全应急响应工具之-流量安全取证NetworkMiner

在前面的一些文章中,用了很多的章节介绍流量分析和捕获工具wireshark。Wireshark是一款通用的网络协议分析工具,非常强大,关于wireshark的更多介绍,请关注专栏,wireshark从入门到精通。本文将介绍一个专注于网络流量取…...

http 401 错误

HTTP 401 错误表示未被授权,指客户端通过请求头中的身份验证数据进行身份验证,服务器返回401状态码表示身份验证失败。HTTP 401 错误通常与身份验证和授权相关的 Web 请求有关。 一、HTTP 401错误的定义 HTTP 401 错误是 HTTP 状态码的一种。由于服务器…...

Docker-Compose部署Redis(v7.2)哨兵模式

文章目录 一、前提准备1. 主从集群2. 文件夹结构 二、配置文件1. redis server配置文件2. redis sentinel配置文件3. docker compose文件 三、运行四、测试 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. 主从集群 首先需要有一个redis主从集群&#x…...

解决问题:PPT中插入视频编辑模式可以播放,幻灯片放映后播放不了

目录 一、原因分析二、解决办法三、其它问题 一、原因分析 这可能是由于PowerPoint的硬件图形加速功能导致的。 二、解决办法 禁用硬件图形加速。 (1)点击《文件》选项卡 (2)点击《选项》 (3)在《高级》…...

使用react+vite开发项目时候,部署上线后刷新页面无法访问解决办法

说一下我这边的环境和使用的路由模式:vitereactBrowserRouter路由模式,所以如果你和我一样的话,可以试试我的这种解决办法,我是将项目打包后直接丢到服务器上的目录里面,然后配置nginx直接访问根目录。 我的nginx配置…...

45. 跳跃游戏 II(Java)

题目描述&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到…...

[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch12 Robotic …...

【C++】知识点汇总(上)

C知识点复习上 一、C 概述1. 基本数据类型2. 变量定义和访问3. 常量与约束访问 二、程序控制结构详解与示例1. 表达式2. 选择控制2.1 if 语句2.2 switch 语句 3. 循环控制3.1 for 循环3.2 while 循环3.3 do-while 循环 4. goto 语句5. 控制语句的嵌套 三、函数1. 函数的定义和调…...

解决docker容器内无法连接宿主redis

背景 小程序的发短信服务挂了&#xff0c;随查看日志&#xff0c;该报错日志如下 Error 111 connecting to 127.0.0.1:6379. Connection refused. 6379是监听redis服务的端口&#xff0c;那大概是redis出错了。 首先查看了redis是否正常启动&#xff0c;检查出服务正常。 由于小…...

43 tmpfs/devtmpfs 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…...

C语言编译器(C语言编程软件)完全攻略(第十二部分:VS2010下载地址和安装教程(图解))

介绍常用C语言编译器的安装、配置和使用。 十二、VS2010下载地址和安装教程&#xff08;图解&#xff09; 为了更好地支持 Win7 程序的开发&#xff0c;微软于2010年4月12日发布了 VS2010&#xff0c;它的界面被重新设计&#xff0c;变得更加简洁。需要注意的是&#xff0c;V…...

【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 VRTK和Unity自身的UI控制包可以配合使用发挥效果。本篇就讨论这方面的实战内容。 之前可以互动的立体UI并不是传统的2D UI对象,在实际使用中…...

BERT(从理论到实践): Bidirectional Encoder Representations from Transformers【3】

这是本系列文章中的第3弹,请确保你已经读过并了解之前文章所讲的内容,因为对于已经解释过的概念或API,本文不会再赘述。 本文要利用BERT实现一个“垃圾邮件分类”的任务,这也是NLP中一个很常见的任务:Text Classification。我们的实验环境仍然是Python3+Tensorflow/Keras…...

静态网页设计——校园官网(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 使用技术&#xff1a;HTMLCSSJS 主要内容&#xff1a;对学校官网的结构进行模仿&#xff0c;对布局进行模仿。 主要内容 1、首页 首页以多个div对页面进行分割和布局…...

phpstudy_pro 关于多版本php的问题

我在phpstudy中安装了多个PHP版本 我希望不同的网站可以对应不同的PHP版本&#xff0c;则在nginx配置文件中需要知道不同的PHP版本的监听端口是多少&#xff0c;如下图所示 然而找遍了php.ini配置&#xff0c;并未对listen进行设置&#xff0c;好奇是怎么实现不同的PHP监听不同…...

TemporalKit的纯手动安装

最近在用本地SD安装temporalkit插件 本地安装插件最常见的问题就是&#xff0c;GitCommandError:… 原因就是&#xff0c;没有科学上网&#xff0c;而且即使搭了ladder&#xff0c;在SD的“从网址上安装”或是“插件安装”都不行&#xff0c;都不行&#xff01;&#xff01;&am…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...