自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shunzi2016的博客

古人学问无遗力,少壮工夫老始成!

  • 博客(677)
  • 资源 (6)
  • 收藏
  • 关注

原创 kotlin:详解伴生对象companion object实现接口的具体代码示例和应用场景

Kotlin中让伴生对象实现接口可以优雅地将类级别功能与接口契约绑定。通过类名直接调用接口方法,适用于工厂模式、日志工具和通用能力注入等场景。核心实现方式包括基础接口实现、泛型工厂接口和命名伴生对象实现多接口。主要优势是无需实例化即可使用接口功能,同时支持扩展函数增强能力。需注意在Java中调用时需要Companion前缀或使用@JvmStatic注解优化互操作性。这种模式能有效封装构建逻辑、统一日志记录和注入序列化等通用功能。

2025-12-10 22:21:26 292

原创 kotlin:基础类型的扩展函数有什么特点?

Kotlin扩展函数为基本类型添加新功能而不修改源码,语法为fun 基础类型.函数名()。核心机制是静态解析,编译时确定调用,不具备多态性。优势包括增强代码表达性和IDE集成度,但受限于仅能访问public成员、与成员函数同名时优先级低且不可重写。最佳实践建议清晰命名、合理组织代码、避免滥用,常见应用于数据校验、工具操作等场景。理解其静态解析特性和优先级规则对正确使用至关重要。

2025-11-30 17:48:20 403

原创 kotlin:kotlin 的map 为什么要用 key to value 而不是 key : value

Kotlin采用key to value而非key: value创建键值对,主要基于语法清晰性和一致性考虑。冒号(:)已用于类型声明等场景,复用易造成混淆。to作为中缀函数更直观,实际返回Pair对象构建映射。虽会创建临时对象,但性能影响通常可忽略,极端场景可用mutableMapOf优化。相比其他语言如Scala(->)或JavaScript(:),Kotlin的选择更符合其语法设计哲学,保持了代码可读性和语言一致性。

2025-11-28 21:53:50 385

原创 kotlin:为什么kotlin代码很少见到else if?

Kotlin 支持 else if 用于多条件判断,但更推荐使用 when 表达式处理多分支场景。if-else 可作为表达式返回值,而 when 在匹配特定值或范围时更简洁高效。选择依据:布尔条件用 if-else if,匹配固定值或类型时用 when,官方建议分支超过2个时优先使用 when。

2025-11-28 10:25:52 182

原创 kotlin:一文读懂kotlin函数编程的重要参数“action”

Kotlin中的action参数是一种函数类型参数,支持将函数作为参数传递,常用于回调、事件处理和定制算法。主要用法包括:1)通过Lambda表达式(最常用)、匿名函数或函数引用传递;2)应用于集合操作、回调函数等场景;3)支持隐式it参数和内联函数优化性能。这种特性体现了Kotlin的函数式编程能力,使代码更简洁灵活。

2025-11-27 22:30:00 401

原创 kotlin:一文打尽kotlin函数部分重要知识点

Kotlin函数特性摘要:Kotlin函数融合面向对象与函数式编程,提供多种函数类型。包括普通函数、扩展函数、高阶函数、Lambda表达式、作用域函数、局部函数、尾递归函数、中缀函数和泛型函数。关键特性有参数灵活性(默认/具名参数)、单表达式函数和函数类型引用。高级概念涵盖内联函数、闭包、函数组合与柯里化,提升代码简洁性和复用性。这些特性使Kotlin函数兼具表达力与性能优势。

2025-11-27 17:59:29 257

原创 kotlin:普通class和data class 有什么区别?

Kotlin中的class和dataclass有显著区别:dataclass专为数据存储设计,自动生成equals()、hashCode()、toString()等方法,支持值比较和便捷复制;普通class则适合包含复杂逻辑的场景。选择依据是:纯数据存储用dataclass(如DTO、实体类),需要业务逻辑则用普通class(如控制器、服务)。示例显示dataclass自动支持内容比较、对象复制和解构声明,而普通class需手动实现这些功能。

2025-11-26 15:28:58 198

原创 Android Emulator hypervisor driver is not installed on this machine

摘要:该报错显示虚拟机设备检测失败,尽管系统兼容性检查(包括Hypervisor、系统资源、GPU和磁盘空间)均已通过。主要问题在于x86_64模拟需要硬件加速支持,但当前机器未安装Android模拟器hypervisor驱动。警告中还提示无法读取quickbootChoice.ini配置文件。解决方法包括:1)确保BIOS中已开启虚拟化功能;2)通过Android Studio安装必要的虚拟机加速驱动。相关配置指南可参考官方文档链接。

2025-11-11 12:27:01 216

原创 Go语言:使用Gin框架实现文件上传API服务(一)

本文介绍了基于Go语言Gin框架和GORM实现的文件上传服务系统。系统采用MVC架构,包含用户认证、权限管理、文件上传等功能模块。项目结构包括config、controller、database等标准化目录,使用JWT进行身份验证,支持用户注册、登录、资料管理等API接口。通过Postman测试展示了完整的API调用流程,包括获取Token和验证权限的过程。系统运行在CentOS7.9环境,采用MySQL数据库,具备5000MB大文件上传支持。代码示例展示了核心功能实现,包括路由配置、中间件处理、数据库连接

2025-11-09 14:01:49 698

原创 Go语言:解决 “package xxx is not in std”的思路

摘要:当出现包路径错误提示时,建议进行三项检查:1)确认已开启模块管理(go env -w GO111MODULE=on);2)检查go.mod文件是否包含正确路径;3)导入语句需包含完整项目地址。这三项检查能解决大多数包导入问题。若都正确配置,子模块应可正常使用。该问题常见于Go模块管理环境下,与路径配置和导入方式有关。

2025-10-30 18:02:56 402

原创 Go语言:常量计数器iota的意义

Go语言中的iota是一个常量生成器,用于自动生成递增的序列值,主要应用于枚举类常量的定义。其特性包括:初始值为0且每行自增1,每个const块会重置,支持表达式运算,同一行共享值,并可跳过特定值。通过iota可简化常量定义,提升代码可读性和可维护性,特别适用于枚举、状态码和标志位等场景。

2025-10-26 13:26:38 273

原创 Go语言:常量设置的注意事项

本文总结了Go语言中常量的关键使用规则:1) 常量必须在声明时初始化且值编译期可确定;2) 分为无类型常量(自动推断)和有类型常量(严格匹配);3) iota计数器在const块中自动递增,初始值为0;4) 常量值不可修改;5) 遵循块级作用域和大小写可见性规则;6) 适用于需要编译期确定值的场景;7) 字符串常量不可变;8) 无类型数值常量支持高精度运算。合理使用常量可提升代码可读性和安全性。

2025-10-26 12:40:37 472

原创 Go语言:一文搞懂go语言的基础类型

Go语言基本类型分四大类:数值型含整数(如int8/int64、uint系列等,有符号/无符号及位数差异)、浮点数(float32/64)、复数(complex64/128);字符相关用byte(uint8别名,表ASCII)和rune(int32别名,表Unicode);字符串为不可变UTF-8字节序列;布尔型(bool)仅true/false。类型严格区分,无隐式转换,需显式转换。

2025-10-24 14:21:23 591

原创 Go语言:关于怎么在线学习go语言的建议

推荐一个在线学习Go语言的贴心网站,支持在线运行代码,帮助熟悉语法。该网站提供中文界面和语法高亮功能,方便国内学习者快速掌握基础概念。通过系统练习后再观看进阶视频,可全面掌握Go语言。网站右上角目录涵盖了Go语言的核心知识点。

2025-10-24 11:06:29 177

原创 Go语言:一文学搞懂核心函数“make”

是 Go 中初始化引用类型(slice、map、channel)的专用函数,它不仅分配内存,还会根据类型进行必要的初始化(如设置长度、容量、缓冲区等),确保这些类型可以直接使用。的参数含义(长度、容量、缓冲区)对优化性能和避免错误(如操作 nil 映射/通道)非常重要。或字面量初始化后才能使用,直接声明未初始化的映射(如。会根据类型进行特定的初始化,使其可以直接使用。是一个特殊的内置函数,主要用于初始化。仅分配内存并返回指针,不初始化),初始化后才能使用,未初始化的通道(用于创建映射时,需要指定。

2025-10-21 11:31:18 468

原创 Go语言:对其语法的一些见解

本文展示了Go语言模块初始化、函数定义和错误处理的基本流程。通过创建greet.go和hello.go两个文件,演示了函数定义、参数传递和错误处理机制。文章总结了编译过程中遇到的常见错误:未使用变量、返回值数量不匹配、过多返回值等,体现了Go语言的严谨性。最后将Go语法与Java、Python进行对比,指出其方法命名类似Java,多返回值类似Python,并提出了对变量声明时冒号用法的疑问。整体呈现了Go语言基础语法特点和与其他语言的异同。

2025-10-20 17:04:08 279

原创 Go语言:关于导包的两个重要说明

Go语言包管理问题总结:1. 文件默认属于main包,导入自定义包时需注意包声明;2. 跨目录导入时,go.mod模块路径应简洁(如"greetings"而非完整路径),否则会导致导入失败。作者在解决这两个问题上共花费了2.5小时,对Go的这种设计提出疑问。

2025-10-17 21:07:22 371

原创 Go语言:原来自定义模块导入是这么一回事?

本文介绍了Go语言模块化开发的实践过程。作者通过创建层级文件、检查mod文件变化、手动添加模块依赖等步骤,验证了Go模块的导入机制。实验表明,可以直接在mod文件中手动添加replace和require指令来管理依赖关系。文中还提出了两个疑问:一是Go为何强制要求移除未使用的导入模块,二是Go是否具备类似Maven的分布式构建工具。整个过程展示了Go语言模块化开发的基本流程和注意事项。

2025-10-17 11:01:22 256

原创 Go语言:记录一下Go语言系统学习的第一天

本文作者分享了自己学习Go语言的经历和心得。作为一个已经掌握多种编程语言的开发者,作者选择Go语言是为了满足后台开发需求。文章详细记录了Go语言的安装过程、常用命令整理(如goversion、gobuild等)、包管理特点,以及通过腾讯镜像解决依赖包下载问题的经验。作者还分享了编写第一段Go代码的感受,认为其语法融合了Java和C的特点。全文以实践为导向,展现了开发者快速掌握新语言的学习路径和实用技巧。

2025-10-15 22:44:53 750

原创 React Native:从react的解构看编程众多语言中的解构

摘要:解构(Destructuring)是一种从复合数据结构(数组、对象等)快速提取值的语法特性,可简化代码并提升可读性。JavaScript支持数组/对象解构,Python通过解包实现类似功能,C#和Java也提供解构支持。核心优势包括代码简化、灵活处理复杂结构及便捷参数处理。不同语言语法略有差异(如JS用[]/{},Python用*),但目标一致:优化数据提取效率,尤其在处理API响应等场景中实用性强。

2025-10-13 16:00:00 1479

原创 什么是同源策略什么又是CORS?

CORS(跨域资源共享)是解决浏览器同源策略限制的机制,允许不同源之间的资源请求。它通过HTTP头部实现跨域通信,包括简单请求和预检请求两种方式。关键头部如Access-Control-Allow-Origin指定允许访问的源,Access-Control-Allow-Methods定义允许的HTTP方法。CORS在保持同源策略安全性的同时,为现代Web应用提供了安全的跨域数据交互方案。

2025-10-13 11:13:40 440

原创 React Native:React开发过程中理解和使用上的陷阱

React开发中,JavaScript/TypeScript的基础概念误解和JSX语法误用是常见陷阱。本文从7大核心场景分析常见问题:1)变量作用域与提升误用,建议使用let/const替代var;2)this绑定丢失,需注意Class组件的方法绑定;3)引用类型比较错误,应比较内容而非引用;4)JSX中误用语句,需改用表达式;5)HTML属性与JS关键字冲突,如用className替代class;6)事件处理函数立即执行问题,需正确传递函数引用;7)JSX语法细节如单标签闭合、注释写法等。理解这些陷阱及其

2025-10-13 07:30:00 1407

原创 React Native:一文搞懂React编程语言中的函数形式

React中的函数形式主要围绕函数组件和Hooks展开: 函数组件:以纯函数形式定义,接收props返回JSX,无this绑定,更简洁易测 核心Hooks: useState管理状态 useEffect处理副作用 useContext共享状态 其他优化Hooks如useCallback/useMemo 进阶模式: 箭头函数组件简化写法 自定义Hooks实现逻辑复用(替代传统HOC) 函数组件+Hooks已成为React开发的主流范式,兼具简洁性与强大功能。

2025-10-13 04:15:00 826 1

原创 React Native::关于react的匿名函数

1. **定义与形式**:匿名函数是没有命名的函数,在React中常见形式为`() => {}`或`function() {}`。2. **常见用法**: - 用于事件处理,如按钮点击事件的简单逻辑实现。 - 传递带参数的回调,例如在列表映射中为每个项绑定带参数的点击事件。 - 在`useEffect`钩子中定义副作用逻辑和清理函数。3. **优缺点**: - 优点:简洁直观,减少代码量;方便传递参数,能捕获周围作用域变量;适合简单逻辑。

2025-10-12 21:57:28 218

原创 React Native:一文搞定React Hook 函数进阶

# React Hook 函数概述React Hook 是 16.8 版本引入的特性,是能在函数组件中“钩入”React 内部状态与生命周期等能力的函数,无需 class 组件即可实现状态管理、副作用处理等核心功能,解决了 class 组件逻辑复用复杂(如 HOC 嵌套)、生命周期逻辑混乱等痛点。

2025-10-11 10:57:23 719

原创 React Native:发现默认参数children【特殊的prop】

这段React代码展示了组件间的事件传递和children特性的使用。Toolbar组件将两个事件处理函数传递给Button组件,而Button组件通过onClick和children两个props接收参数。有趣的是,children参数会自动获取组件标签内的内容(如"Play Movie"文本),且必须命名为children。这种设计体现了React的灵活性,其中children作为特殊prop实现了内容插槽功能,这在其他语言中并不常见。代码演示了如何通过props实现组件间通信和内容

2025-10-10 16:11:02 364

原创 React Native:列表的key无法在元素中看到

在React中,列表渲染需要为每个元素添加"key"属性以优化性能,但这个属性不会显示在浏览器的DOM检查中。实际上,"key"被缓存在JavaScript内存里,只有在控制台打印列表组件时才能看到这个属性。这是React的内部实现机制,开发者需要正确设置"key"但无需担心它在DOM中的可见性。(98字)

2025-10-09 22:31:48 148

原创 React Native:关于react自定义css属性的位置

本文介绍了在React中添加样式的正确方法。通过对比错误和正确的className使用方式,指出样式属性应添加在原始函数组件内而非嵌套组件中。同时强调需要将对应的CSS文件引入主文件,并说明React的CSS语法与传统CSS基本一致。文章以React中文文档为参考,帮助开发者快速掌握样式添加技巧。

2025-10-09 11:00:04 452

原创 React Native:快速熟悉react 语法和企业级开发

本文为React实战教程,面向有前端基础的开发者,通过8个核心概念和示例讲解React应用开发。内容涵盖:1)JSX语法实现电商商品卡片;2)State与Props实现表格分页;3)事件处理实现登录表单;4)条件渲染处理消息列表;5)Context API管理主题切换;6)useState实现计数器与表单;7)useEffect实现文章列表加载;8)useContext优化用户状态管理。教程使用Vite+Ant Design技术栈,包含代码优化建议和常见问题解决方案,帮助开发者快速掌握React业务组件开发

2025-10-07 20:45:02 1096 5

原创 React Native:使用vite创建react项目并熟悉react语法

发现想写好react native 的程序,react的语法熟练度还是很重要的,而react 目前最好的构建工具当属vite。我个人之前写的程序绝大多数都是都断的程序,Python ,Java,C等,前端的话写过很多js框架,有些老框架甚至名字都记不起来了。现在虽然不是转向了前端开发,但是基于以前js,cs和html,vue的基础应该应该能很快入手react。那么就让我们开始react的学习和掌握吧!

2025-09-27 22:19:48 1576 1

原创 React Native:如何将原有的依赖复用给新的RN project?

本文介绍了在React Native项目中复用已有依赖文件的方法,以减少下载时间和网络消耗。主要步骤包括:1)拷贝build.gradle中的签名配置;2)复用1GB以上的intermediates文件夹;3)共享密钥文件;4)复制配置了国内源的build.gradle;5)迁移gradle.properties签名信息;6)使用本地gradle-wrapper.properties。通过以上操作,成功实现了依赖文件的重复利用,显著提升了新项目的构建效率,尤其适用于网络环境不稳定的情况。

2025-09-23 23:02:05 1167

原创 React Native:为什么带上version就会报错呢?

摘要:使用npx初始化React Native项目时,--version参数指定的是React Native的版本号,而非项目本身的版本标识。例如执行npx @react-native-community/cli init DTT --version 1.0.0时,1.0.0表示要安装的React Native版本。这个参数控制项目初始化的框架版本,而非生成项目的版本号。

2025-09-23 21:27:35 323 1

原创 React Native:分享Windows平台搭建react native并构建apk的操作流程和配置信息

本次分享一下react native构建安卓apk的记录分享。本人鼓捣过Android studio 所以对其不陌生,Java更是看家本领,前端代码概念和基础基本上也通了.只是react native始终没有实践过。这几天研究了一下觉得RN的方案是非常不错的,而且组件库异常丰富。我有考虑过这次搞KMM或者腾讯的kuikly,但想着还是把RN搞通了,东西做起来,未来在看情况是都转向KMM等高性能平台。

2025-09-22 11:40:39 894 1

原创 Axure:如何将SVG转换为形状

摘要:在Axure中使用阿里巴巴矢量图标库的SVG图标,只需3步:1)复制SVG代码并粘贴到Axure;2)右键选择"变换图片"转换为形状;3)自由编辑形状。这种方法快速实现矢量图标的个性化定制。

2025-08-27 22:26:45 327

原创 Axure:有个特别实用的功能

这个自动计算和显示距离的功能,对于我这种比较懒的人非常有用。

2025-08-23 23:15:27 406

原创 Axure:如何打开自定义操作界面

在Axure工坊原型作品分享平台,Axure RP操作界面 有一个“自定义操作界面”的内容,这部分内容我在界面上找了好半天没找到,后来终于不小心碰到了。原来是在工具栏的空白处右键就能快速的找到这个自定义操作界面。

2025-08-23 21:24:07 245

原创 OVS:ovn是如何支持组播的?

OVN基于Open vSwitch提供虚拟网络组播支持,通过逻辑交换机的IGMP snooping实现二层组播转发,逻辑路由器的PIM协议处理三层跨子网组播。控制平面管理组播状态并配置流表,数据平面执行精准转发。支持与物理网络通过VXLAN/VLAN交互,实现虚拟与物理组播流量的互通。典型配置包括启用逻辑交换机的IGMP snooping和设置逻辑路由器组播路由,确保高效、隔离的组播通信。

2025-08-18 23:11:54 1015

原创 OVS:ovn为什么默认选择Geneve作为二层隧道网络协议?

OVN选择Geneve协议主要基于其灵活扩展性和性能优势。Geneve的TLV结构支持传输ACL等元数据,解决了VXLAN固定头部的限制。其UDP封装优化了校验计算,提升处理效率,并与现有硬件卸载技术兼容。此外,Geneve标准化程度高,支持ECMP负载均衡,为OVN未来扩展提供空间。这些特性使其成为OVN理想的二层隧道协议选择。

2025-08-18 22:14:42 476

原创 OVS:除了Geneve和VXLAN,还有哪些虚拟化网络协议?

除了Geneve和VXLAN,常见的虚拟化网络协议还有多种。NVGRE基于GRE技术,用24位VNID标识虚拟网络,适用于跨网虚拟机迁移,曾被微软广泛使用;STT是基于TCP的无状态隧道技术,效率高,为VMware NSX采用。传统的VLAN通过12位标签隔离网络,但数量有限;MPLS基于标签转发,支持大量虚拟网络,适合高性能场景。GRE是通用三层隧道协议,需结合其他机制实现隔离;IPsec安全性高,适用于跨公网通信;MAC-in-MAC依赖二层网络,用于数据中心内部通信。这些协议各有优劣,适用场景不同

2025-08-18 19:50:03 972

原创 OVS:Vxlan和Geneve协议大对比

Geneve与Vxlan协议对比摘要 Geneve和Vxlan是网络虚拟化的核心协议。Vxlan(2011年提出)采用固定8字节头部,支持24位VNI,基于UDP 4789端口,性能更高(比Geneve快12%),但仅支持IPv4,适用于传统虚拟化场景。Geneve(2016年推出)扩展性更强,支持动态TLV选项(0-252字节)和IPv4/IPv6双栈,UDP端口为6081,适合云原生环境(如Kubernetes),但封装性能稍低。Vxlan在硬件卸载和成熟生态中占优(占75%市场份额),而Geneve凭

2025-08-18 18:21:01 843

佳能 MF460 Series 打印机配置

佳能 MF460 Series 打印机配置

2024-03-13

mysql-5.7.44-linux-glibc2.12-x86-64.tar

mysql-5.7.44-linux-glibc2.12-x86_64.tar

2024-01-31

Custom.mxtpro

Custom.mxtpro

2023-11-19

一款非常适合入门和编写程序的软件:GVim

Vim是一款非常强悍和伟大的文本编辑器,尤其是在代码编写上具有着无与伦比的语法能力,据说已经支持170多种语言,并且其高亮语法十分的友好。而这一款GVimr软件则是入门和学习Vim命令的好帮手,所以你值得拥有!

2023-08-06

vdsm添加接口进行调试编译安装教程

1. 添加API接口 1 2. 添加api方法 2 3. Vdsm-api.yml添加参数 2 4. 生成最新的的帮助文档和持久化对象 3 5. 暴露jsonrpc接口: 3 6. 需要重启vdsmd 4 7. vdsm-client 调试 4 8. 完成对supervdsmd服务内部函数的调用 4 9. 通过src.rpm修改更新源码进行编译 5 10. 搭建测试虚拟机环境进行安装测试 7

2022-11-21

docker_rpm_next.zip

关于我一篇博客中所需要的centos 7.8 docker离线安装的资料包

2020-12-21

fabric-samples

与我另外一个资源aliyunfabric.tar文件配合使用,在我的阿里云上进行测试部署e2e_cli成功运行,另外还需要一个fabric-samples等一下上传适合他对应的版本。将其tar zxvf /opt/gopath/src/github.com/hyperledger(src之前的目录可以根据$GOPATH设置)就好,如无积分请留言邮箱

2018-03-31

常用的linux centos7.x rpm

我的一个博客需要的资源;https://mp.csdn.net/console/editor/html/109146626

2020-10-18

python3常用的pip3安装包

我的一个博客需要的一个资料包:Python3:离线安装python3,构建virtualenv虚拟环境,以及搭建简易的pypi私有仓库

2020-10-18

elasticsearch-7.10.2-x86_64.rpm7.10.2.rpm

elasticsearch-7.10.2-x86_64.rpm7.10.2.rpm

2021-01-28

hyperledger/fabric的一个版本v1.1

fabric的一个稳定版本,在我的阿里云上进行测试部署e2e_cli成功运行,另外还需要一个fabric-samples等一下上传适合他对应的版本。将其tar zxvf /opt/gopath/src/github.com/hyperledger(src之前的目录可以根据$GOPATH设置)就好

2018-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除