Go语言学习记录

GO语法学习之路

  • 学习时间段
  • 2024-06-02学习记录
    • 安装&环境配置
    • Go安装包内容
      • 统一入门姿势:hello world实现
    • Go语法初学
      • Go 运行时(runtime)
      • Go解释器

学习时间段

2024-06-02 2024-06-09 2024-06-16 2024-06-23 2024-06-30 2024-07-07 2024-07-14 2024-07-21 2024-07-28 2024-08-04 2024-08-11 进行中 计划中 已完成 步骤 学习时间段

2024-06-02学习记录

安装&环境配置

安装包下载地址:https://golang.google.cn/dl/
这里我选择下载:1.21.9最新稳定版本用于学习

Go安装包内容

/bin:包含可执行文件,如:编译器,Go 工具
/doc:包含示例程序,代码工具,本地文档等
/lib:包含文档模版
/misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例
/os_arch:包含标准库的包的对象文件(.a)
/src:包含源代码构建脚本和标准库的包的完整源代码(Go 是一门开源语言)
/src/cmd:包含 Go 和 C 的编译器和命令行脚本

统一入门姿势:hello world实现

在这里插入图片描述

Go语法初学

Go 运行时(runtime)

尽管 Go 编译器产生的是本地可执行代码,然而这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。

runtime 主要由 C 语言编写(自 Go 1.5 起开始自举),并且是每个 Go 包的最顶级包。你可以在目录 $GOROOT/src/runtime 中找到相关内容。

垃圾回收器 Go 拥有简单却高效的标记 - 清除回收器。它的主要思想来源于 IBM 的可复用垃圾回收器,旨在打造一个高效、低延迟的并发回收器。目前 gccgo 还没有回收器,同时适用于 gc 和 gccgo 的新回收器正在研发中。使用一门具有垃圾回收功能的编程语言不代表你可以避免内存分配所带来的问题,分配和回收内容都是消耗 CPU 资源的一种行为。

Go 的可执行文件都比相对应的源代码文件要大很多,这恰恰说明了 Go 的 runtime 嵌入到了每一个可执行文件当中。当然,在部署到数量巨大的集群时,较大的文件体积也是比较头疼的问题。但总得来说,Go 的部署工作还是要比 Java 和 Python 轻松得多。因为 Go 不需要依赖任何其它文件,它只需要一个单独的静态文件,这样你也不会像使用其它语言一样被各种不同版本的依赖文件混淆。

Go解释器

因为 Go 具有像动态语言那样快速编译的能力,自然而然地就有人会问 Go 语言能否在 REPL(read-eval-print loop)编程环境下实现。

点击了解:Go解释器具体代码实现

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

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

相关文章

百度大模型算法实习岗上岸经验分享!

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

算法学习(01)

1、排序算法 1&#xff09;快速排序 public void qsout(int[] arr,int l,int r){if(l > r)return;int i,j,temp,t;i l;j r;temp arr[l];while(i ! j){while(arr[j] > temp && i < j) j--;while(arr[i] < temp && i < j) i;if(i < j){t …

每日一练——分糖果

575. 分糖果 - 力扣&#xff08;LeetCode&#xff09; 方法一 可以做&#xff0c;但提示超时了 #define MIN(x, y) (x < y ? x : y)int distributeCandies(int* candyType, int candyTypeSize) {int p 0;char flag 1;for (int i 1; i < candyTypeSize; i){for (int…

TypeScript 模块解析机制

1. 模块解析的概念 模块解析是指编译器在编译过程中根据模块的导入语句找到并加载相应的模块文件的过程。在 TypeScript 中&#xff0c;模块可以使用相对路径或者绝对路径来导入&#xff0c;编译器需要根据导入语句中的路径信息来定位到对应的模块文件。 2. 解析策略 TypeSc…

Java项目:94 springboot大学城水电管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本管理系统有管理员和用户。 本大学城水电管理系统管理员功能有个人中心&#xff0c;用户管理&#xff0c;领用设备管理&#xff0c;消耗设备…

pandas习题 035:选择 DataFrame 其中一列

# 有以下一个 DataFrame&#xff0c;请分别选择 name 列和 math 列&#xff0c;选择后为一个 Series&#xff0c;并查看这些 Series 的数据类型。 import pandas as pddata {name: [Alice, Bob, Charlie, David, Eve],grade: [10, 11, 10, 12, 11],math: [90, 85, 92, 88, 95]…

介绍计算机系统中的I/O设备工作方式

在现代计算机系统中&#xff0c;I/O设备&#xff08;Input/Output Devices&#xff09;扮演着至关重要的角色&#xff0c;它们负责在计算机和外部环境之间进行数据交换。本文将详细介绍I/O设备的种类、连接方式及其工作原理&#xff0c;并解释GPU如何进行并行计算&#xff0c;以…

Lambda 表达式练习

目录 sorted() 四种排序 List 转 Map map 映射 对象中 String 类型属性为空的字段赋值为 null BiConsumer,> T reduce(T identity, BinaryOperator accumulator) allMatch(Predicate p) groupingBy(Function f) flatMap(Function f) Optional.ofNullable(T t) 和 …

基于51单片机的俄罗斯方块

一.硬件方案 本设计采用STC89C52RC单片机作为系统的芯片&#xff0c;实现人机交互、娱乐等功能。选用LCD12864实现俄罗斯方块游戏界面、图形显示&#xff1b;选用独立按键实现游戏控制。本设计实现的基本功能是&#xff1a;用按键控制目标方块的变换与移动&#xff1b;消除一行…

OpenCASCADE开发指南<十四>:OCCT建模类之BRepPrimAPI_MakePipe创建管道

1、OpenCasCade拓扑几何 在Open CASCADE Technology (OCCT) 中,除了基本三维几何体建模类BRepBuilderAPI外,还提供了复杂模型的建模类,常用的有如下几种,他们可以单独使用或相互组合,通过OCCT提供的融合函数进行组装。例如:BRepOffsetAPI_ThruSections、BRepOffsetAPI_Ma…

TalkingData数据统计:洞察数字世界的关键工具

TalkingData数据统计&#xff1a;洞察数字世界的关键工具 在数字化时代&#xff0c;数据已成为推动社会进步和商业决策的核心动力。TalkingData作为国内领先的移动数据服务平台&#xff0c;为众多企业提供了全面、精准的数据统计服务。本文将深入探讨TalkingData数据统计的应用…

Jenkins - Parallel 并行执行

Jenkins - Parallel 并行执行 引言Jenkins Parallel 基本用法Jenkins Prallel 启动多个其他 JobJenkins Parallel Retry 引言 日常执行测试用例&#xff0c;为了缩减执行时间&#xff0c;提高工作效率&#xff0c;可以从以下两个方面进行改进。 代码层面&#xff1a;用多进程…

15 试用期,转正时我们要考察什么?

上一讲&#xff0c;我点出了“找人并不等于盲目加人”&#xff0c;你既要明确业务现状与团队需求&#xff0c;更要做好面试甄别&#xff0c;做出最优决定。那么当你找到人之后&#xff0c;是不是就可以高枕无忧了呢&#xff1f;并不是。 因为最终目的并非招聘&#xff0c;而是…

基于安卓的虫害识别软件设计--(2)模型性能可视化|混淆矩阵、热力图

1.混淆矩阵&#xff08;Confusion Matrix&#xff09; 1.1基础理论 &#xff08;1&#xff09;在机器学习、深度学习领域中&#xff0c;混淆矩阵常用于监督学习&#xff0c;匹配矩阵常用于无监督学习。主要用来比较分类结果和实际预测值。 &#xff08;2&#xff09;图中表达…

FPGA代码移植案例分析:Tcl Scripts后提示找不到 vo 文件,Supra软件报错

FPGA代码移植案例分析&#xff1a;Tcl Scripts后提示找不到 vo 文件&#xff0c;Supra软件报错 客户工程师已经运行Tcl Scripts&#xff0c;正常没出错就会产生这个vo文件。工程师试了两次 运行之后点的next的&#xff0c;还是出现同样的错误。 建议客户在原quartus工程里重新…

LabVIEW如何确保步进电机的长期稳定运行

步进电机因其良好的定位精度和控制性&#xff0c;在自动化设备中得到了广泛应用。然而&#xff0c;长期稳定运行对于任何电机系统都是一个重要的挑战。LabVIEW作为一款强大的图形化编程语言&#xff0c;通过其灵活的控制算法和实时监控能力&#xff0c;为步进电机的稳定运行提供…

探索 Vue Devtools 4.0 的新世界!

大家好&#xff0c;我是前端宝哥。Vue Devtools 4.0 版本带来了一系列激动人心的新特性和改进&#xff0c;让我们一起来探索这些更新亮点&#xff01; 宝哥省流版&#xff1a; &#x1f6e0; 直接编辑组件数据&#xff0c;实时预览变更效果。⚙️ 快速编辑功能&#xff0c;一键…

Python 基于机器学习模型的车牌检测和识别系统 有GUI界面 【含Python源码 MX_004期】

一、系统介绍 车牌的检测和识别技术在现代社会中的应用场景可谓十分广泛&#xff0c;不仅涉及交通管理领域&#xff0c;还延伸至社区安保等多个方面。例如&#xff0c;在交通违章管理中&#xff0c;通过车牌追踪可以有效追踪违章车辆&#xff0c;维护交通秩序&#xff1b;在小区…

如何高效管理团队任务?强大的在线管理团队多任务的神器-YesDev

任务是最小的工作项&#xff0c;工时是可以对研发产能进行量化。 一员工工时 工作组工时登记配置 针对于工作组&#xff0c;你可以开启/关闭工时登记。关闭工作组的工时登记后&#xff0c;整个工作组将取消工时登记&#xff0c;重新开启后恢复。 在同一个工作组内&#xff0c…

碰撞检测技术在AI中的重要作用

引言&#xff1a; 随着人工智能技术的不断发展&#xff0c;AI已经渗透到我们生活的方方面面。在游戏、机器人、虚拟现实等领域中&#xff0c;碰撞检测技术扮演着至关重要的角色。本文将探讨碰撞检测技术在AI中的作用&#xff0c;以及如何利用这项技术来改善AI系统的性能和用户体…