上次聊到了《Go语言进阶之路(八):正则表达式》和《Go语言进阶之路:手撸一个LRU缓存》,这次利用正则表达式来编写一个并发爬虫。私信“空姐”获取本爬虫源码!说到爬虫,不得不提到前面写的《Python网络爬虫requests、bs4爬取空姐网图片》。这个爬虫很简洁,使用requests库发送http请求,使用bs4来解析html元素,获取所有图片地址。但是这个爬虫是单线程爬虫,速度太慢,一分钟只能
转载
2024-07-22 15:57:34
24阅读
1. 介绍函数:基本的代码块。定义如下:func funcname(argList) (retList) {
//todo
}函数签名:函数参数、返回值以及它们的类型被统称为函数签名。函数申明:申明一个在外部定义的函数,你只需要给出函数名与函数签名,不需要给出函数体,例如:func funcName(begin, end int)目的:(为什么要用多个函数)1. 分解复杂的代码(易读)2.
函数函数是组织好的、可重复使用的、用于执行指定任务的代码块。函数是go语言中的“一等公民”。函数的定义与调用其实我们从开始就无时无刻在接触着函数--main函数。语法: func 函数名(参数)(返回值){ 函数体 }规则: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也称不能重名。 参数:参数由参数变量和参数变量的类型组成,多个参
转载
2023-11-27 09:58:28
51阅读
目录 目录Tips函数定义,不定长变参,传递值类型与引用类型一切皆类型,包括函数匿名函数和闭包匿名函数闭包defer用法panic 与 recover,错误处理机制综合例子 TipsGo函数不支持 嵌套,重载 和 默认参数但支持以下特性: 无需声明原型,不定长度变参,多返回值,命名返回值参数,匿名函数,闭包定义函数使用关键字func,并且左大括号不能另起一行函数定义,不定长变参,传递值类型与引用类
转载
2024-02-21 12:16:30
80阅读
go不像c++ java php等有class类及面向对象直接特征, 但是它也支持面向对象的写法 ...
转载
2021-11-01 18:25:00
311阅读
2评论
首先golang中协程golang是用户线程与系统线程的对应关系是多对多,既能利用多核cpu资源,也能尽可能减少上下文切换成本,代价是go需要实现复杂的goroutine调度机制。N:1,所有用户线程对应1个系统线程,无法利用多核cpu;1:1,1个用户线程对应一个系统线程,上下文切换成本高。调度逻辑 四个结构体M:Machine,操作系统线程。一个M被创建后会在P空闲队列中获取P进
转载
2024-04-01 06:21:18
61阅读
字符串定义在golang中字符串是一种不可变的字节序列,它可以包含任意的数据,包括0值字节,但主要是人类可以阅读的文本。golang中默认字符串被解读为utf-8编码的Unicode码点(文字符号)序列。特性golang中字符串具有不可变性。例如str := "hello 世界!"
str[0] = 'L'这种写法会引起编译错误:str[0] 不可赋值字符串支持类似数组中分片的引用写法:fmt.
转载
2024-02-22 10:41:32
13阅读
介绍Golang 语言支持命名返回值。官方建议:直接返回语句应当仅用在下面这样的短函数中。在长的函数中它们会影响代码的可读性。而使用普通返回值时,使用 return 语句返回时,需要在其后面指定与普通返回值相同类型的参数名。命名返回值Go 的返回值可被命名,它们会被视作定义在函数顶部的变量。返回值的名称应当具有一定的意义,它可以作为文档使用。没有参数的 return 语句返回已
转载
2024-04-03 14:17:07
48阅读
golang GC机制经历了3个过程一、Go1.3版本的mark and sweep(标记、清除) 步骤: 1、锁住整个程序,即STW(
简介 sync.Pool是一个可以存或取的临时对象集合 sync.Pool可以安全被多个线程同时使用,保证线程安全 注意、注意、注意,sync.Pool中保存的任何项都可能随时不做通知的释放掉,所以不适合用于像socket长连接或数据库连接池。 sync.Pool主要用途是增加临时对象的重用率,减少GC负担 关于堆和栈程序会从操作系统申请一块内存,而这块内存也会被分成堆和栈。栈可以简单得理解成一次函数调用内部申请到的内存,它们会随着函数的返回把内存还给系统。
原创
2021-06-01 12:26:22
411阅读
函数返回对象有两种常见的方式1.重载拷贝构造函数和赋值函数
见下面的fun1
2.重载赋值函数,然后用"return <构造函数>"的格式
见下面的fun2测试代码.对类C重载了赋值运算,构造,析构,拷贝构造.然后写了两个函数来测试返回值class C
{
public:
int i;
C &operator = (C &
转载
2024-03-05 21:45:56
30阅读
golang笔记04--golang 面向对象1 介
原创
2022-08-29 10:10:52
72阅读
package main import "fmt" type Person struct { name string //名字 sex byte //性别 age int //年龄 } type Student struct { Person //只有类型,没有名字,匿名字段,继承了Person的成员 id int ad...
原创
2021-05-27 11:08:16
283阅读
依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。在传统的程序设计过程中,调用者是自己来决定使用哪些被调用者实现的。但是在依赖注入模式中,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由注入器来完成,然后注入调用者,因此也称为依赖注入。inject 是依赖注入的golang实现。它能
这是我们 Golang 系列教程第 6 章,学习 Golang 函数的相关知识。函数是什么? 函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输出。函数的声明 在 Go 语言中,函数声明通用语法如下:func functionname(parametername type) returntype {
// 函数体(具体实现的功能)
}函数的声明以关键
转载
2024-02-02 13:19:16
58阅读
# Golang 调用 Python 获取返回值的实现步骤
在现代软件开发中,跨语言调用是一个普遍的需求。Golang 和 Python 各有其优势,有时我们可能希望在 Golang 中调用 Python 代码以利用其实现的某些功能。本文将指导你如何在 Golang 中调用 Python 代码,并获取其返回值。
## 整体流程
在我们开始之前,先来看一下整体流程。下面的表格展示了实现步骤:
# 教你如何用Golang返回Mysql id数组
作为一名经验丰富的开发者,我将教你如何在Golang中实现返回Mysql id数组的功能。首先,我们需要了解整个实现的流程,然后详细说明每一步需要做什么以及具体的代码实现。
## 实现流程
下面是实现"返回Mysql id数组"的流程表格:
```mermaid
journey
title 返回Mysql id数组流程
s
原创
2024-06-04 07:28:23
14阅读
Golang 语言 method 接收者使用值类型和指针类型的区别01介绍在 Golang 语言中,function 的参数和 method 的接收者都可以选择使用值传递和指针传递(“引用传递”),需要注意的是,其中指针传递是传递的指针值的副本,而不是指针指向的数据的副本。也就是说 Golang 语言和 C 系的所有语言相同,一切传递都是值传递。本文我们主要介绍 method 的接收者怎么选择使用
多值返回函数可以返回任意数量的返回值。swap 函数返回了两个字符串。package mainimport "fmt"func swap(x, y string) (string, string) { return y, x}func main() { a, b := swap("hello", "world") fmt.Println(a, b)}
原创
2021-07-02 14:32:24
340阅读
Go 语言结构体与面向对象编程。
原创
2021-07-02 11:35:55
253阅读