GO语言学习笔记(与Java的比较学习)(六)

标准库概述

fmtos 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分 (一些底层的除外) 内置于 Go 本身。

正则表达式使用:

以下是一些常见的正则表达式语法和元字符:

  1. 普通字符:表示自身的字符,例如字母、数字、空格等。

    • a: 匹配字符 'a'

    • 123: 匹配字符串 '123'

  2. 元字符:具有特殊含义的字符,用来描述模式。

    • .: 匹配任意单个字符(除了换行符 \n

    • ^: 匹配输入字符串的开始

    • $: 匹配输入字符串的结尾

    • *: 匹配前一个字符0次或多次

    • +: 匹配前一个字符1次或多次

    • ?: 匹配前一个字符0次或1次

    • []: 匹配括号内的任意一个字符

    • |: 或操作,匹配两者中的任意一个

    • (): 分组,用于控制操作符的范围

  3. 字符类:用于匹配特定类型的字符。

    • \d: 匹配任意数字,相当于 [0-9]

    • \w: 匹配任意字母、数字、下划线,相当于 [a-zA-Z0-9_]

    • \s: 匹配任意空白字符,包括空格、制表符、换行符等

  4. 量词:用于指定匹配次数。

    • {n}: 匹配前一个字符恰好 n 次

    • {n,}: 匹配前一个字符至少 n 次

    • {n,m}: 匹配前一个字符至少 n 次,最多 m 次

  5. 转义字符:用于匹配元字符本身。

    • \: 转义字符,用于匹配特殊字符,如 \. 匹配句号

regexp 包

锁和 sync 包

在 Go 语言中这种锁的机制是通过 sync 包中 Mutex 来实现的。sync 来源于 "synchronized" 一词,这意味着线程将有序的对同一变量进行访问。

精密计算和 big 包

自定义包和可见性

当写自己包的时候,要使用短小的不含有 _(下划线) 的小写单词来为文件命名。

包的初始化:

程序的执行开始于导入包,初始化 main 包然后调用 main 函数。

一个没有导入的包将通过分配初始值给所有的包级变量和调用源码中定义的包级 init 函数来初始化。一个包可能有多个 init 函数,它们甚至可以存在于同一个源码文件中。它们的执行是无序的。这是测定包的值是否只依赖于相同包下的其他值或者函数的最好的例子。

init 函数是不能被调用的。

导入的包在包自身初始化前被初始化,而一个包在程序执行中只能初始化一次。

使用 import关键字来进行导包

为自定义包使用 godoc

godoc 工具(第 3.6 节)在显示自定义包中的注释也有很好的效果:注释必须以 // 开始并无空行放在声明(包,类型,函数)前。godoc 会为每个文件生成一系列的网页。

学习参考资料:

《Go 入门指南》 | Go 技术论坛 (learnku.com)

Go 语言之旅

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

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

相关文章

每日shell脚本之自动化备份管理镜像

每日shell脚本之自动化备份管理镜像 #!/bin/bash h_sl(){echo "-------------------" } save(){if [ ! -d "./images" ]; thenmkdir imagesficd imagesdocker images --format "{{.ID}} {{.Repository}}:{{.Tag}} {{.Size}}" > images_pull.…

Vue后台管理系统笔记-01

npm(Node Package Manager)和 yarn 是两个常用的包管理工具,用于在 Node.js 项目中安装、管理和更新依赖项。它们有以下几个区别: 性能和速度:在包的安装和下载方面,yarn 通常比 npm 更快速。yarn 使用了并…

代码随想录算法训练营Day38 || leetCode 7509. 斐波那契数 || 70. 爬楼梯 || 746. 使用最小花费爬楼梯

动态规划和我们数电中学习的时序电路类似,某一时刻的状态不仅与当前时刻的输入有关,还与之前的状态有关,所以推导过程中我们需要模拟题目中的情况,来找到每一时刻状态间的关系。 做题思路如下 509. 斐波那契数 此题简单 状态方程…

【官宣】2024广州国际酒店工程家具及商业空间展览会

2024广州国际酒店工程家具及商业空间展览会 Guangzhou International Hotel Engineering Furniture and commercial space exhibition 2024 时间:2024年12月19-21日 地点:中国进出口商品交易会展馆 承办单位:广州佛兴英耀展览服务有…

【计算机网络】IO多路转接之epoll

文章目录 一、epoll的相关系统调用二、epoll工作原理三、epoll的优点(和 select 的缺点对应)四、epoll工作方式五、epoll服务器1.Sock.hpp2.Log.hpp3.Err.hpp4.epollServer.hpp5.epollServer.cc 一、epoll的相关系统调用 按照man手册的说法: 是为处理大批量句柄而作了改进的po…

Java精品项目--第7期基于SpringBoot的驾校后台管理系统的设计分析与实现

项目使用技术栈 JavaSpringBootMavenMySQLMyBatisShiroHTMLVue.js(非前后端分离)… 项目截图

IOS使用Unity容器动态加载3D模型

项目背景 我们的APP是一个数字藏品平台,里面的很多藏品需要展示3D模型,3D模型里面可能会包含场景,动画,交互。而对应3D场景来说,考虑到要同时支持iOS端,安卓端,Unity是个天然的优秀方案。 对于Unity容器来说,需要满足如下的功能: 1.在APP启动时,需要满足动态下载最…

leetcode 热题 100_滑动窗口最大值

题解一: 双端队列:滑动窗口的本质是在窗口末尾添加一个元素,并移除头部的一个元素。对于添加的元素,直接和当前最大值比较即可,但对于移除的元素,如果移除的是原先的最大值,则需要重新遍历窗口寻…

MySQL面试题-基础内容(答案版)

基础内容 1、MySQL的架构分层 (1)Serve层:负责建立连接、分析和执行 SQL。 MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数&…

企业内部培训考试系统在线考试都用到了哪些防作弊技术?

企业内部培训考试系统在线考试功能采用了多种技术手段来防止作弊行为,确保考试的公平性和有效性,具体如下: 1. 人脸识别验证:在考试开始前,考生需要进行人脸识别核验。系统会根据考生的姓名和身份证号实时采集人脸与公…

【深度学习笔记】 5_9 含并行连结的网络(GoogLeNet)

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 5.9 含并行连结的网络(GoogLeNet) 在2014年的ImageNet图像识别挑战赛中,一个名叫GoogLeNet的网络结…

阿里云域名优惠口令2024年最新,com、cn和域名注册续费使用

2024年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续…

决策树实验分析(分类和回归任务,剪枝,数据对决策树影响)

目录 1. 前言 2. 实验分析 2.1 导入包 2.2 决策树模型构建及树模型的可视化展示 2.3 概率估计 2.4 绘制决策边界 2.5 决策树的正则化(剪枝) 2.6 对数据敏感 2.7 回归任务 2.8 对比树的深度对结果的影响 2.9 剪枝 1. 前言 本文主要分析了决策树的分类和回…

Java开发避坑指南,手把手教你写Java项目文档

前言 作为一个有丰富经验的微服务系统架构师,经常有人问我,“应该选择RabbitMQ还是Kafka?” 基于某些原因, 许多开发者会把这两种技术当做等价的来看待。的确,在一些案例场景下选择RabbitMQ还是Kafka没什么差别&…

Android布局优化之include、merge、ViewStub的使用,7年老Android一次坑爹的面试经历

前言 开发10年,老码农,曾经是爱奇艺架构 点击领取完整开源项目《安卓学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 师,东芝集团高级工程师,三星架构师。5年之内频繁被辞退。内心拔凉拔凉的,在这五…

Android开发新手入门教程,2024Android开发社招面试解答之性能优化

前言 本想今年辞掉工作大干一场,没想到碰到疫情,家里蹲了3个月…,还好字节能给一次机会。前阵子字节跳动的提前批开始了,看宣传是说有海量HC,机会多多,本着涨涨面经的心理,然后就投递了一下杭州…

论文阅读:Dataset Quantization

摘要 最先进的深度神经网络使用大量(百万甚至数十亿)数据进行训练。昂贵的计算和内存成本使得在有限的硬件资源上训练它们变得困难,特别是对于最近流行的大型语言模型 (LLM) 和计算机视觉模型 (CV)。因此最近流行的数据集蒸馏方法得到发展&a…

代码随想录算法训练营第11天

20. 有效的括号 方法: 1. 如果 !st.empty() return false2.如果st.top() ! s[i] return false3. 如果 st.empty() return false注意: 以下这种写法 不满足 题目要求的第二点,不能以正确的顺序闭合 if(s[i] st.top()){return true;s…

基于springboot+vue的图书管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

RabbitMQ如何保证消息不丢

如何保证Queue消息能不丢呢? RabbitMQ在接收到消息后,默认并不会立即进行持久化,而是先把消息暂存在内存中,这时候如果MQ挂了,那么消息就会丢失。所以需要通过持久化机制来保证消息可以被持久化下来。 队列和交换机的…