Go语言函数
Go 语言函数函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。 函数定义Go 语言函数定义格式如下:func function_name( [parameter list] ) [return_types] { 函数体} 函数定义解析: func:函数由 func 开始声明function_name:函数名称,参数列表和返回值类型构成了函数签名。parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。return_types:返回类型,函数返回一列值。return_types...
Go语言Map(集合)
Go 语言Map(集合) Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。 Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,遍历 Map 时返回的键值对的顺序是不确定的。 在获取 Map 的值时,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 “”。Map 是引用类型,如果将一个 Map 传递给一个函数或赋值给另一个变量,它们都指向同一个底层数据结构,因此对 Map 的修改会影响到所有引用它的变量。定义 Map可以使用内建函数 make 或使用 map 关键字来定义 Map:/* 使用 make 函数 */map_variable := make(map[KeyType]ValueType, initialCapacity) 其中 KeyType 是键的类型,ValueType 是值的类型,initialCapacity 是可选的参数,用于指定 Map 的初始容量。Map 的容量是指 Map...
Go并发
Go 并发并发是指程序同时执行多个任务的能力。Go 语言支持并发,通过 goroutines 和 channels 提供了一种简洁且高效的方式来实现并发。Goroutines:Go 中的并发执行单位,类似于轻量级的线程。Goroutine 的调度由 Go 运行时管理,用户无需手动分配线程。使用 go 关键字启动 Goroutine。Goroutine 是非阻塞的,可以高效地运行成千上万个 Goroutine。Channel:Go 中用于在 Goroutine 之间通信的机制。支持同步和数据共享,避免了显式的锁机制。使用 chan 关键字创建,通过 <- 操作符发送和接收数据。Scheduler(调度器): Go 的调度器基于 GMP 模型,调度器会将 Goroutine 分配到系统线程中执行,并通过 M 和 P 的配合高效管理并发。G:Goroutine。M:系统线程(Machine)。P:逻辑处理器(Processor)。Goroutinegoroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。goroutine 语法格式:go...
GoAI编程助手
Go AI 编程助手 这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。 AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方,无论是快速修复错误、提升代码质量,或者查找关键文档和资源,AI 作为编程助手都能让你事半功倍。 今天为大家推荐一款 VSCode 的插件 Fitten Code,Fitten Code 是由非十大模型驱动的 AI 编程助手,它可以自动生成代码,提升开发效率,帮您调试 Bug,节省您的时间,另外还可以对话聊天,解决您编程碰到的问题。 Fitten Code 免费且支持 80 多种语言:Python、C++、Javascript、Typescript、Java等。 安装 智能补全 AI问答 生成代码 代码翻译 生成注释 解释代码 生成测试 检查 BUG 编辑代码 优化代码 12.整项目分析 13.整项目感知分补全 14.复刻网页 常见问题 1、安装 如果您已经安装 VSCode 且版本大于等于...
C++ 预处理器
C++ 预处理器预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。C++ 还支持很多预处理指令,比如 #include、#define、#if、#else、#line 等,让我们一起看看这些重要指令。#define 预处理#define 预处理指令用于创建符号常量。该符号常量通常称为宏,指令的一般形式是: #define macro-name replacement-text 当这一行代码出现在一个文件中时,在该文件中后续出现的所有宏都将会在程序编译之前被替换为 replacement-text。例如: #include using namespace std; #define PI 3.14159int main (){cout << “Value of PI :” << PI << endl;...
C++ 重载运算符和重载函数
C++ 重载运算符和重载函数 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。 C++ 中的函数重载在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。下面的实例中,同名函数 print() 被用于输出不同的数据类型: 实例 #include using namespace std; class printData{public: void print(int i) {cout << “整数为: “ << i << endl; }void print(double f) {cout <<...
C++ 运算符
C++ 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。 算术运算符下表显示了 C++ 支持的算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则: 运算符描述实例+把两个操作数相加 A + B 将得到 30-从第一个操作数中减去第二个操作数 A - B 将得到 -10*把两个操作数相乘 A * B 将得到 200/分子除以分母 B / A 将得到 2%取模运算符,整除后的余数 B % A 将得到 0++自增运算符,整数值增加 1 A++ 将得到 11–自减运算符,整数值减少 1 A– 将得到 9 实例请看下面的实例,了解 C++ 中可用的算术运算符。复制并粘贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。 实例 #include using namespace std; int main(){int a...
C++ 语言测验
C++ 语言测验 开始 其他相关测试 C++ 测验一C++ 测验二C++ 测验三
C++ 继承
C++ 继承面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。 代码如下: // 基类class Animal { // eat() 函数 // sleep() 函数}; //派生类class Dog : public Animal { // bark() 函数}; 基类 & 派生类一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数。定义一个派生类,我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名,形式如下: class derived-class:...
C++ 结构体(struct)
C++ 结构体(struct) C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性: Title :标题Author :作者Subject :类目Book ID :书的 ID 定义结构在 C++ 中,struct 语句用于定义结构体(structure)。结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起。与类(class)类似,结构体允许你定义成员变量和成员函数。为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下: struct type_name {member_type1 member_name1;member_type2 member_name2;member_type3 member_name3;..} object_names; type_name 是结构体类型的名称,member_type1...