- 1 简介OpenAPI(OAS API) 是一种广泛采用的标准化格式,用于描述 REST API。您可以使用 OpenAPI 详细说明 API 的每个部分,包括终端节点、作参数、请求响应和身份验证流程。OpenAPI 格式对开发人员和计算机都易于阅读和理解。更难立即破译的是版本的不同之处。规范、清晰,几乎可以直接用于自动化文档、接口测试、代码生成甚至权限控制。 2 规范分析OpenAPI ... 1 简介OpenAPI(OAS API) 是一种广泛采用的标准化格式,用于描述 REST API。您可以使用 OpenAPI 详细说明 API 的每个部分,包括终端节点、作参数、请求响应和身份验证流程。OpenAPI 格式对开发人员和计算机都易于阅读和理解。更难立即破译的是版本的不同之处。规范、清晰,几乎可以直接用于自动化文档、接口测试、代码生成甚至权限控制。 2 规范分析OpenAPI ...
- 1 简介go语言中 所有对象都是 pass by value, 那么go语言变量为何还有 值传递和 引用传递的区别?当有人说 “go的所有变量传递都是值传递”,这句话是真的其中也包含了一些容易混淆的细节。 2. Go 中“所有传参都是值传递”无论传递什么类型的变量(包括指针、slice、map、chan、interface 等),它们都是 值传递。也就是说,当你调用一个函数并传递一个变量... 1 简介go语言中 所有对象都是 pass by value, 那么go语言变量为何还有 值传递和 引用传递的区别?当有人说 “go的所有变量传递都是值传递”,这句话是真的其中也包含了一些容易混淆的细节。 2. Go 中“所有传参都是值传递”无论传递什么类型的变量(包括指针、slice、map、chan、interface 等),它们都是 值传递。也就是说,当你调用一个函数并传递一个变量...
- 1 简介在 go社区有句话是: 一切都是值传递, PASS BY VALUE.当我们传递一个内存地址时,我们传递了一个值与 C 系列中的所有语言一样,Go 中的所有内容都是通过值传递的。也就是说,函数总是获取所传递事物的副本,就好像有一个赋值语句将值分配给参数一样。例如,将 int 值传递给函数会复制 int,传递指针值会复制指针,但不会复制它指向的数据。本文举例依次说明这几种常见场景。 ... 1 简介在 go社区有句话是: 一切都是值传递, PASS BY VALUE.当我们传递一个内存地址时,我们传递了一个值与 C 系列中的所有语言一样,Go 中的所有内容都是通过值传递的。也就是说,函数总是获取所传递事物的副本,就好像有一个赋值语句将值分配给参数一样。例如,将 int 值传递给函数会复制 int,传递指针值会复制指针,但不会复制它指向的数据。本文举例依次说明这几种常见场景。 ...
- 1 简介什么是 Golang 中的闭包?当 Go 中的匿名函数可以访问其周围环境时,就会发生闭包。然后它可以保持自己的独特状态。然后,当我们创建函数的新实例时,之前实例的状态将是独立的。这将为函数创建一个新属性,以了解其周围环境。此属性称为 闭包closure 属性。 2 变量的范围匿名函数,嵌套函数 和 返回函数都可以访问局部块变量,如果不使用局部变量隔离数据,那么就使用全局变量(pa... 1 简介什么是 Golang 中的闭包?当 Go 中的匿名函数可以访问其周围环境时,就会发生闭包。然后它可以保持自己的独特状态。然后,当我们创建函数的新实例时,之前实例的状态将是独立的。这将为函数创建一个新属性,以了解其周围环境。此属性称为 闭包closure 属性。 2 变量的范围匿名函数,嵌套函数 和 返回函数都可以访问局部块变量,如果不使用局部变量隔离数据,那么就使用全局变量(pa...
- 1 函数内联简介这可能涉及编译器优化、语言设计和性能分析几个方面。内联是将较小的函数组合到各自的调用者中的行为。在计算的早期,这种优化通常是手动执行的。如今,内联是在编译过程中自动执行的一类基本优化之一。内联很重要,原因有两个。首先是它消除了函数调用本身的开销。其次,它允许编译器更有效地应用其他优化策略。在Go中,一个协程会有一个单独的栈,栈又会包含多个栈帧,栈帧是函数调用时在栈上为函数所... 1 函数内联简介这可能涉及编译器优化、语言设计和性能分析几个方面。内联是将较小的函数组合到各自的调用者中的行为。在计算的早期,这种优化通常是手动执行的。如今,内联是在编译过程中自动执行的一类基本优化之一。内联很重要,原因有两个。首先是它消除了函数调用本身的开销。其次,它允许编译器更有效地应用其他优化策略。在Go中,一个协程会有一个单独的栈,栈又会包含多个栈帧,栈帧是函数调用时在栈上为函数所...
- 1 简介Go 的逃逸分析就像一个被许多开发人员忽视的超能力。这不仅仅是关于内存管理;这是关于从代码中榨取每一点性能。我很高兴能学到这种“神秘”的东西并且分享给各位。奖励好奇的开发人员!逃逸分析显示变量在内存中的存储位置。堆上的变量使用速度较慢,需要垃圾回收,而堆栈上的变量速度更快,并且会自动清理。通常内存中的变量栈分配速度更快,并且对于生存期较短的变量是首选,而堆分配对于具有较长生命周期或... 1 简介Go 的逃逸分析就像一个被许多开发人员忽视的超能力。这不仅仅是关于内存管理;这是关于从代码中榨取每一点性能。我很高兴能学到这种“神秘”的东西并且分享给各位。奖励好奇的开发人员!逃逸分析显示变量在内存中的存储位置。堆上的变量使用速度较慢,需要垃圾回收,而堆栈上的变量速度更快,并且会自动清理。通常内存中的变量栈分配速度更快,并且对于生存期较短的变量是首选,而堆分配对于具有较长生命周期或...
- 1 简介当使用允许访问指针值的编程语言(如 Java、C#、C/C++、Go 等)时,通常必须小心区分按值传递和按引用传递。 按值传递 按引用传递 将函数参数的值复制到另一个变量的机制 将实际参数传递给函数的机制 在函数中所做的更改不会反映在原始值... 1 简介当使用允许访问指针值的编程语言(如 Java、C#、C/C++、Go 等)时,通常必须小心区分按值传递和按引用传递。 按值传递 按引用传递 将函数参数的值复制到另一个变量的机制 将实际参数传递给函数的机制 在函数中所做的更改不会反映在原始值...
- 1 简介Go 语言以简洁和高性能著称,其中内存管理是它的重要组成部分。本文介绍了 Go 的内存对齐机制、平台差异、结构体布局优化、以及垃圾回收(GC)相关知识,并提供了一些优化建议。 2 不同系统下的内存表现(Windows vs Linux)虽然 Go 的内存分配逻辑在所有平台一致,但底层地址表现会因操作系统而异: 项目 Linux Windows 堆/栈起始地址 ... 1 简介Go 语言以简洁和高性能著称,其中内存管理是它的重要组成部分。本文介绍了 Go 的内存对齐机制、平台差异、结构体布局优化、以及垃圾回收(GC)相关知识,并提供了一些优化建议。 2 不同系统下的内存表现(Windows vs Linux)虽然 Go 的内存分配逻辑在所有平台一致,但底层地址表现会因操作系统而异: 项目 Linux Windows 堆/栈起始地址 ...
- 1 内存管理分析go语言的变量定义、内存地址一致性似乎是个神秘的问题,例如变量a的地址,&a 每次打印都是一样的地址, 但是多个变量又不一样了?0xc00000a0c8(不同机器可能不同) a := 43 fmt.Println("a's memory address - ", &a) 你观察到:每次运行都是一样的地址,这其实是 Go 的内存分配优化的一部分。 0x... 1 内存管理分析go语言的变量定义、内存地址一致性似乎是个神秘的问题,例如变量a的地址,&a 每次打印都是一样的地址, 但是多个变量又不一样了?0xc00000a0c8(不同机器可能不同) a := 43 fmt.Println("a's memory address - ", &a) 你观察到:每次运行都是一样的地址,这其实是 Go 的内存分配优化的一部分。 0x...
- Iota 基本示例iota 关键字表示连续的整数常量 0、1、2,…每当单词出现在源代码中时,它就会重置为 0,const并在每个 const 规范之后递增。本文将介绍几种不同的 iota 使用方式,以及有关在何处谨慎使用它的提示。const ( C0 = iota C1 = iota C2 = iota ) fmt.Println(C0, C1, C2) // "0 1 2"这可以... Iota 基本示例iota 关键字表示连续的整数常量 0、1、2,…每当单词出现在源代码中时,它就会重置为 0,const并在每个 const 规范之后递增。本文将介绍几种不同的 iota 使用方式,以及有关在何处谨慎使用它的提示。const ( C0 = iota C1 = iota C2 = iota ) fmt.Println(C0, C1, C2) // "0 1 2"这可以...
- 1 简介层次式的 Web 系统设计是一种分层架构设计模式,旨在将应用程序划分为不同的功能层级,以实现职责分离、提高可维护性和扩展性。这种架构通常分为以下几个主要层次:表示层,业务逻辑层,数据访问层,持久化层,控制器层,中间件层。 2 层次结构与具体实现技术表示层(Presentation Layer)功能:处理用户界面和交互逻辑。负责接收用户输入、呈现数据以及返回响应。实现技术:HTML、... 1 简介层次式的 Web 系统设计是一种分层架构设计模式,旨在将应用程序划分为不同的功能层级,以实现职责分离、提高可维护性和扩展性。这种架构通常分为以下几个主要层次:表示层,业务逻辑层,数据访问层,持久化层,控制器层,中间件层。 2 层次结构与具体实现技术表示层(Presentation Layer)功能:处理用户界面和交互逻辑。负责接收用户输入、呈现数据以及返回响应。实现技术:HTML、...
- 1 简介Go 语言提供了一个称为匿名函数的特殊功能。匿名函数可以形成一个闭包。闭包是一种特殊类型的匿名函数,它引用在函数本身之外声明的变量。它类似于访问在函数声明之前可用的全局变量。这意味着这些函数几乎可以在任何地方使用。这将为函数创建一个新属性,以了解其周围环境。此属性称为 闭包closure 属性。什么是 Golang 中的闭包?当 Go 中的匿名函数可以访问其周围环境时,就会发生 C... 1 简介Go 语言提供了一个称为匿名函数的特殊功能。匿名函数可以形成一个闭包。闭包是一种特殊类型的匿名函数,它引用在函数本身之外声明的变量。它类似于访问在函数声明之前可用的全局变量。这意味着这些函数几乎可以在任何地方使用。这将为函数创建一个新属性,以了解其周围环境。此属性称为 闭包closure 属性。什么是 Golang 中的闭包?当 Go 中的匿名函数可以访问其周围环境时,就会发生 C...
- 1 简介MVC 是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型(Model)、视图(View)和控制器(Controller)。模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。Model 有对数据直接访问的权利,例如对数据库的访问。Model不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操... 1 简介MVC 是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型(Model)、视图(View)和控制器(Controller)。模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。Model 有对数据直接访问的权利,例如对数据库的访问。Model不依赖 View 和 Controller,也就是说, Model 不关心它会被如何显示或是如何被操...
- 1 简介数组和切片在go语言中是非常常见的两个数据类型。数组和切片都用于存储相同类型的元素集合。但是,它们在行为和使用案例方面存在显著差异。数组的大小是固定的,而切片是动态的,更灵活。了解数组和切片之间的差异对于编写高效且可维护的 Go 程序至关重要。 2 数组和切片的区别示例声明、初始化和使用数组的示例:使用场景使用数组:当集合的大小是固定的并且在编译时已知时。使用切片:当集合的大小需要... 1 简介数组和切片在go语言中是非常常见的两个数据类型。数组和切片都用于存储相同类型的元素集合。但是,它们在行为和使用案例方面存在显著差异。数组的大小是固定的,而切片是动态的,更灵活。了解数组和切片之间的差异对于编写高效且可维护的 Go 程序至关重要。 2 数组和切片的区别示例声明、初始化和使用数组的示例:使用场景使用数组:当集合的大小是固定的并且在编译时已知时。使用切片:当集合的大小需要...
- 1 简介层次式的 Web 系统设计是一种分层架构设计模式,旨在将应用程序划分为不同的功能层级,以实现职责分离、提高可维护性和扩展性。这种架构通常分为以下几个主要层次:表示层,业务层,数据访问层,持久化层,网络层。 2 层次结构与具体实现技术表示层(Presentation Layer)功能:处理用户界面和交互逻辑。负责接收用户输入、呈现数据以及返回响应。实现技术:HTML、CSS、Java... 1 简介层次式的 Web 系统设计是一种分层架构设计模式,旨在将应用程序划分为不同的功能层级,以实现职责分离、提高可维护性和扩展性。这种架构通常分为以下几个主要层次:表示层,业务层,数据访问层,持久化层,网络层。 2 层次结构与具体实现技术表示层(Presentation Layer)功能:处理用户界面和交互逻辑。负责接收用户输入、呈现数据以及返回响应。实现技术:HTML、CSS、Java...
上滑加载中
推荐直播
-
香橙派AIpro的远程推理框架与实验案例
2025/07/04 周五 19:00-20:00
郝家胜 -华为开发者布道师-高校教师
AiR推理框架创新采用将模型推理与模型应用相分离的机制,把香橙派封装为AI推理黑盒服务,构建了分布式远程推理框架,并提供多种输入模态、多种输出方式以及多线程支持的高度复用框架,解决了开发板环境配置复杂上手困难、缺乏可视化体验和资源稀缺课程受限等痛点问题,真正做到开箱即用,并支持多种笔记本电脑环境、多种不同编程语言,10行代码即可体验图像分割迁移案例。
回顾中 -
鸿蒙端云一体化应用开发
2025/07/10 周四 19:00-20:00
倪红军 华为开发者布道师-高校教师
基于鸿蒙平台终端设备的应用场景越来越多、使用范围越来越广。本课程以云数据库服务为例,介绍云侧项目应用的创建、新建对象类型、新增存储区及向对象类型中添加数据对象的方法,端侧(HarmonyOS平台)一体化工程项目的创建、云数据资源的关联方法及对云侧数据的增删改查等操作方法,为开发端云一体化应用打下坚实基础。
回顾中
热门标签