首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在我做了一些修改之后,再次使用一个设计的函数

答:当我们在开发过程中需要多次使用相同的功能或逻辑时,可以将这些功能或逻辑封装成一个函数,以便重复使用。在进行修改后,我们可以再次使用这个设计的函数来实现相同的功能。

函数是一段可重复使用的代码块,它接受输入参数并返回一个结果。通过将代码封装在函数中,我们可以提高代码的可读性、可维护性和重用性。

在使用设计的函数之前,我们需要先定义函数的输入参数和返回值类型。根据具体的需求,我们可以选择不同的编程语言和开发框架来实现函数的设计。

在云计算领域,函数的设计常用于实现服务器端的逻辑处理、数据处理、任务调度等功能。例如,在一个Web应用中,我们可以设计一个函数来处理用户的登录请求,验证用户身份并返回相应的结果。

对于前端开发,我们可以使用JavaScript来设计函数,通过事件触发或用户交互调用函数来实现特定的功能。例如,当用户点击一个按钮时,可以调用一个设计的函数来执行相应的操作。

对于后端开发,我们可以使用各种编程语言(如Python、Java、C#等)来设计函数,实现服务器端的逻辑处理。例如,当接收到客户端的请求时,可以调用一个设计的函数来处理请求并返回相应的结果。

在软件测试中,我们可以设计函数来实现自动化测试,通过调用函数来执行测试用例并验证系统的正确性。例如,可以设计一个函数来模拟用户的操作,自动化执行一系列测试步骤。

在数据库领域,我们可以设计函数来实现数据的查询、插入、更新和删除等操作。例如,可以设计一个函数来查询指定条件的数据,并返回查询结果。

在服务器运维中,我们可以设计函数来实现服务器的监控、管理和维护等任务。例如,可以设计一个函数来定时检查服务器的状态,并发送报警信息。

在云原生应用开发中,我们可以设计函数来实现容器化应用的部署、扩缩容和监控等功能。例如,可以设计一个函数来自动化部署应用,并根据负载情况进行自动扩缩容。

在网络通信领域,我们可以设计函数来实现网络协议的解析、数据传输和通信管理等功能。例如,可以设计一个函数来解析HTTP请求,并返回相应的结果。

在网络安全领域,我们可以设计函数来实现身份认证、数据加密和安全审计等功能。例如,可以设计一个函数来验证用户的身份,并对敏感数据进行加密保护。

在音视频处理领域,我们可以设计函数来实现音视频的编解码、转码和处理等功能。例如,可以设计一个函数来将音频文件转换为不同的格式,并进行音频处理。

在多媒体处理领域,我们可以设计函数来实现图像的处理、视频的编辑和音频的合成等功能。例如,可以设计一个函数来对图像进行滤镜处理,并生成新的图像。

在人工智能领域,我们可以设计函数来实现机器学习、深度学习和自然语言处理等功能。例如,可以设计一个函数来进行图像识别,并返回识别结果。

在物联网领域,我们可以设计函数来实现设备的连接、数据采集和远程控制等功能。例如,可以设计一个函数来接收传感器数据,并进行实时处理和分析。

在移动开发领域,我们可以设计函数来实现移动应用的开发、测试和发布等任务。例如,可以设计一个函数来处理用户的手势操作,并进行相应的界面切换。

在存储领域,我们可以设计函数来实现数据的读写、备份和恢复等功能。例如,可以设计一个函数来上传文件到云存储,并生成相应的访问链接。

在区块链领域,我们可以设计函数来实现区块的创建、交易的验证和智能合约的执行等功能。例如,可以设计一个函数来创建新的区块,并验证交易的有效性。

在元宇宙领域,我们可以设计函数来实现虚拟现实、增强现实和虚拟货币的交易等功能。例如,可以设计一个函数来实现虚拟世界的物理模拟,并处理虚拟货币的交易。

总结来说,设计一个函数可以帮助我们实现各种功能和逻辑,提高代码的可重用性和可维护性。在云计算领域,函数的设计广泛应用于前端开发、后端开发、软件测试、数据库、服务器运维、云原生、网络通信、网络安全、音视频、多媒体处理、人工智能、物联网、移动开发、存储、区块链、元宇宙等各个方面。根据具体的需求,我们可以选择适合的编程语言和开发框架来实现函数的设计。腾讯云提供了丰富的云计算产品和服务,可以满足各种需求,具体可以参考腾讯云官方网站(https://cloud.tencent.com/)获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

React之Hooks基础

有了hooks之后,我们就要改变以前说法,我们不能再说函数一个无状态组件了,因为hooks为函数组件提供了状态。 hooks只能在函数组件中使用。...2.1 状态读取和修改 读取状态: userState方法 传过来参数,作为count 初始值,该方法提供状态,是函数内部局部变量,可以函数任意位置使用。...其中useState也不会跟着执行,不过,初始值只首次渲染时生效。 更新渲染 函数组件会再次渲染,这个函数再次执行。...userState再次执行,得到新count值,不是原来初始值,而是修改之后值,模板会用新值再次渲染。 注意: useState 初始值(参数)只会在组件第一次渲染时生效。...3.1 基础使用 我们做一个小案例,想在我们修改数据之后,把count 最新值放到页面标题中去,那它其实已经脱离我们这个函数了,它其实做了一个dom 操作。那它就显然是副作用啦。 看看浏览器。

76010

基于Qt新冠肺炎疫情数据实时监控平台1.1版本

1.前言 上一篇文章用Qt做了个疫情数据实时监控平台,介绍了实现思路和简单过程,主要包括数据接口获取和Qt开发,这两天修复一些BUG,完善了部分功能,如下: 新增辟谣信息详情显示界面,点击谣言标题弹出信息详情...qt_windows.h,更改之后再次编译,还是报错,打开头文件一看,还是调用了 windows.h文件: 还好,Qt原生QDesktopServices类中有可以打开链接函数,兼容Windows和...编译成功之后Linux下运行界面: 4.添加辟谣信息详情显示 1.0版本程序中,查看辟谣信息详情,可以通过点击谣言标题,然后调用默认浏览器打开这个链接,再去查看详细信息,但是腾讯这个信息界面是针对手机端设计...逻辑设计也很简单,在用户点击谣言标题时,弹出窗口,而这个窗口里显示就是这条谣言详细信息,如谣言鉴定信息,查证者及其机构,来源等等,返回之后再次点击其他标题,则显示对应详细信息。...推荐阅读 [开源]用Qt做了个疫情数据实时监控平台 Qt平台下使用QJson解析和构建JSON字符串 Qt实现软件自动更新一种简单方法 Qt小项目之串口助手控制LED 详解EMC测试国家标准GB/T

1.5K10

ConcurrentHashMap原理分析

实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它技巧在里面(比如你是否知道get操作时候,它是否也使用了锁来保护?)。...= null) 如果确实是一个不完整对象,则使用方式再次get一次。 有没有可能会put进一个value为nullentry?...2) get代码①和②之间,另一个线程修改一个entryvalue value是用volitale修饰,可以保证读取时获取到修改值。...我们第①处就判断了count变量,它保障了 ①处能看到其他线程修改。①之后到②之间,如果再次发生了其他线程再删除了entry节点,就没法保证看到最新了。...这其实是一种乐观设计设计者假设 ①之后到②之间 发生被其它线程增、删、改操作可能性很小,所以不采用同步设计,而是采用了事后(其它线程这期间也来操作,并且可能发生非安全事件)弥补方式。

82040

从实现装饰者模式中思考C++指针和引用选择

从实现装饰者模式中思考C++指针和引用选择 最近在看设计模式内容,偶然间手痒就写了一个“装饰者”模式一个实例。该实例来源于风雪涟漪博客,对它做了简化。...作为一个经典设计模式,本身并没有太多要说内容。但是尝试使用C++去实现这个模式实例时候,出现了一些看似无关紧要但是却引人深思问题。 首先,想简单介绍一下这个实例含义。...实例目的是希望通过装饰器类对已有的蛋糕类进行装饰补充,于是按照装饰者模式设计结构,有类似图1设计结构。 ? 图1 装饰者模式 蛋糕类和装饰器类都继承于一个公共基类,该基类声明了一些公共接口。...你我第一反应八成是觉得忘了多修饰一次了,但是我们认真的检查代码,发现的确一切都是符合逻辑…… 上边做了这么多铺垫就是为了引出这个奇怪问题,其实也被该问题困惑了很久。...再次再次检查代码、调试、跟踪,或许你会像发现新大陆一样发现了一个隐藏问题:第二次构造FlowerDecorator时调用是复制构造函数,而不是定义好构造函数(虽然子类FlowerDecorator

1.1K100

满篇代码废话少,程序员一定很喜欢

后来了解到其中approve函数是有问题,approve函数功能前面也提到了,它允许你给其他帐户设置一个额度。这个函数一般会在什么场景下使用呢?...但是它标准底下给了一个链接,其中有一段代码。然后加了一行代码,做了刚刚说那种限制,限制你额度修改之前是0。...如果在这个fall back函数再次调用withdraw函数的话,由于balance减少是发币最后面,所以这时候余额还没有减少,然后就可以再次调用这个转帐函数可以继续把以太币给转出来。...然后做了一下实验,就是加了一行代码,然后再次发起这种重入攻击,结果发现这次重入失败了。 查了一下余额,首先看记录,它是只有一次转出以太币记录,0.5个。...第三个想谈一下ERC20代币里面一些代码逻辑设计缺陷,就举一个例子,冻结帐户绕过。这是之前做这种合约审计时候发现一个案例。

1.6K30

万事开头难!入门TensorFlow,这9个问题TF Boys必须要搞清楚

另外,TensorBoard是新手必须学会使用,这个工具有非常好可视化辅助工具,帮助工程师调试模型以及训练过程。tfdbg是1.0之后发布调试工具,可以一个step中实时查看数据变化。...佟达:使用TensorFlow之前,使用过其他一些机器学习/深度学习框架,比如主要用于语音识别的Kaldi,图像识别的Caffe,还有Spark MLlib,DeepLearning4j等。...TF是个深度学习框架,所以使用TF时候不可避免要理解什么是隐层,什么是激活函数,激活函数有哪些,以及如何定义损失函数等等这一些概念,对于这一块当时除了调研一些书籍外也通过看stanford一些课程来学习...其中又有哪些是开发者可以利用第三方工具克服? 佟达:TensorFlow设计范式带来一个天生限制就是TensorFlow中,想要动态修改计算图比较困难。...今年早些时候,TensorFlow发布了一个工具,TensorFlow Fold,可以相对方便动态修改计算图。不过总的来说,TensorFlow计算图设计灵活性上还是有些欠缺。

858150

微信小程序中直接运行React组件

但是remax迭代更新之后,它开始强依赖自己编译工具,这直接导致放弃项目中使用它。...具体内容是关键,它用于配制一个Reconciler,从代码角度,它就是一个钩子函数集合,我们需要在每个钩子函数内部写一些副作用来操作container,你可以看到,不同时刻,我们传入created...基于react-reconciler,react运行时一个环节都做了一些副作用操作,这些副作用本质,就是修改一个纯js对象,当react被运行起来时,它会经历一个生命周期,这在一个视频中有讲到...你也可以关注个人微信公众号 wwwtangshuangnet 和我讨论相关问题。一个生命周期节点上,调度器就会执行一个副作用,即修改提供那个纯js对象。...利用react渲染器得到纯对象上存在一些函数,调用这些函数会触发它们对应逻辑(比如调用setState触发hooks状态更新),从而触发调度器中钩子函数执行,container对象再次修改,updated

4.8K50

关于函数参数传递,80%人都错了

或许很多人直观印象中,变量是一个容器;给变量赋值,就像是往一个存储容器中填入一个数据;再次赋值就是把容器中数据换掉。 然而, Python 中,这种理解是不准确!...体会下这两种设计差异: · 前者,变量是一个固定存在,赋值只会改变其中数值,而变量本身没有改动。 · 后者,变量不存在实体,它仅仅是一个标签,一旦赋值就被设置到另一个物体上,不变是那些物体。...调用 fn(a) 时候,就相当于做了一次 x = a,把 a 赋值给了 x,也就是把 x 这个标签贴在了 a 对象上。只不过 x 作用域仅限于函数 fn 内部。...而对 m 重新赋值之后,m 与 l 无关,但不影响已经做出修改。 这就是这道题解答。上次留言里有些同学已经解释很准确了。 另外说下,函数返回值 return,也相当于是一次赋值。...所以,如果你想要通过一个函数修改外部变量值,有几种方法: 通过返回值赋值 使用全局变量 修改 list 或 dict 对象内部元素 修改成员变量 有相当多教程把 Python 函数参数传递分为可变对象和不可变对象

37230

Python到底是引用传递还是值传递?网上大多数教程都讲错了

或许很多人直观印象中,变量是一个容器;给变量赋值,就像是往一个存储容器中填入一个数据;再次赋值就是把容器中数据换掉。 然而, Python 中,这种理解是错!...体会下这两种设计差异: · 前者,变量是一个固定存在,赋值只会改变其中数值,而变量本身没有改动。 · 后者,变量不存在实体,它仅仅是一个标签,一旦赋值就被设置到另一个物体上,不变是那些物体。...调用 fn(a) 时候,就相当于做了一次 x = a,把 a 赋值给了 x,也就是把 x 这个标签贴在了 a 对象上。只不过 x 作用域仅限于函数 fn 内部。...而对 m 重新赋值之后,m 与 l 无关,但不影响已经做出修改。 这就是这道题解答。上次留言里有些同学已经解释很准确了。 另外说下,函数返回值 return,也相当于是一次赋值。...所以,如果你想要通过一个函数修改外部变量值,有几种方法: 通过返回值赋值 使用全局变量 修改 list 或 dict 对象内部元素 修改成员变量 有相当多教程把 Python 函数参数传递分为可变对象和不可变对象

10220

把3000行代码重构成15行牛逼操作!!!

没敢给我们老板展示优秀成果,所幸,这段代码非但没有出过任何问题,还避免了以前同事老是新增一个之后,把代码复制过来,但是没有正确修改问题,大大提高了效率。...再次,这段代码要是有点修改不是要每个dt.Rows[n]得改一遍?...我们来看看使用这一段代码有什么不好地方: 重复发明轮子。花费了额外时间,函数健壮性和很差 可读性差。其实是一个很简单功能,但是用上了这么一段函数,起初还以为有什么特别的功能。...过度设计,导致重写计划迟迟无法完成 有重写冲动程序员往往是架构设计上有一些读到见解,他们善于利用所学各种设计模式和架构技巧来建立系统,但是越是想尽可能利用设计模式,越是陷入过度设计困局,导致重写计划迟迟都无法完成...如果你坚持这么去做了,一段时间之后感觉自然就出来了。

64130

一顿操作猛如虎,3000 行代码重构成 15 !

没敢给我们老板展示优秀成果。 所幸,这段代码非但没有出过任何问题,还避免了以前同事老是新增一个之后,把代码复制过来,但是没有正确修改问题,大大提高了效率。...再次,这段代码要是有点修改不是要每个 dt.Rows [n] 得改一遍?...我们来看看使用这一段代码有什么不好地方: 重复发明轮子。花费了额外时间,函数健壮性和很差 可读性差。其实是一个很简单功能,但是用上了这么一段函数,起初还以为有什么特别的功能。...过度设计,导致重写计划迟迟无法完成 有重写冲动程序员往往是架构设计上有一些读到见解,他们善于利用所学各种设计模式和架构技巧来建立系统,但是越是想尽可能利用设计模式,越是陷入过度设计困局,导致重写计划迟迟都无法完成...如果你坚持这么去做了,一段时间之后感觉自然就出来了。

44010

把3000行代码重构成15行牛逼操作!!!

没敢给我们老板展示优秀成果,所幸,这段代码非但没有出过任何问题,还避免了以前同事老是新增一个之后,把代码复制过来,但是没有正确修改问题,大大提高了效率。...再次,这段代码要是有点修改不是要每个dt.Rows[n]得改一遍?...我们来看看使用这一段代码有什么不好地方: 重复发明轮子。花费了额外时间,函数健壮性和很差 可读性差。其实是一个很简单功能,但是用上了这么一段函数,起初还以为有什么特别的功能。...过度设计,导致重写计划迟迟无法完成 有重写冲动程序员往往是架构设计上有一些读到见解,他们善于利用所学各种设计模式和架构技巧来建立系统,但是越是想尽可能利用设计模式,越是陷入过度设计困局,导致重写计划迟迟都无法完成...如果你坚持这么去做了,一段时间之后感觉自然就出来了。

50110

从把三千行代码重构成15行代码谈起

没敢给我们老板展示优秀成果,所幸,这段代码非但没有出过任何问题,还避免了以前同事老是新增一个之后,把代码复制过来,但是没有正确修改问题,大大提高了效率。...再次,这段代码要是有点修改不是要每个dt.Rows[n]得改一遍?...我们来看看使用这一段代码有什么不好地方: 重复发明轮子。花费了额外时间,函数健壮性和很差 可读性差。其实是一个很简单功能,但是用上了这么一段函数,起初还以为有什么特别的功能。...过度设计,导致重写计划迟迟无法完成 有重写冲动程序员往往是架构设计上有一些读到见解,他们善于利用所学各种设计模式和架构技巧来建立系统,但是越是想尽可能利用设计模式,越是陷入过度设计困局,导致重写计划迟迟都无法完成...如果你坚持这么去做了,一段时间之后感觉自然就出来了。

48420

把3000行代码重构成15行,这样做!

没敢给我们老板展示优秀成果。 所幸,这段代码非但没有出过任何问题,还避免了以前同事老是新增一个之后,把代码复制过来,但是没有正确修改问题,大大提高了效率。...再次,这段代码要是有点修改不是要每个 dt.Rows [n] 得改一遍?...我们来看看使用这一段代码有什么不好地方: 重复发明轮子。花费了额外时间,函数健壮性和很差 可读性差。其实是一个很简单功能,但是用上了这么一段函数,起初还以为有什么特别的功能。...过度设计,导致重写计划迟迟无法完成 有重写冲动程序员往往是架构设计上有一些读到见解,他们善于利用所学各种设计模式和架构技巧来建立系统,但是越是想尽可能利用设计模式,越是陷入过度设计困局,导致重写计划迟迟都无法完成...如果你坚持这么去做了,一段时间之后感觉自然就出来了。

42520

Android登录系统设计

,第一次没有运行代码情况下完成这个登录系统开发,最终运行成功了,修改了一次没有初始化情况,中间还出现了一些小插曲,最后完成这套系统开发,目前app 已上线谷歌应用商店,欢迎大家来体验。...否则跳转 LoginActivity进入 LoginActivity 之后进行多种形式缓存,这里缓存是各自部分进行处理,最后缓存成统一形式Json数据,但有一点是必须保证进入MainActivity...,统一登录和邮箱登录这边仅仅只做了时间上验证,也可以考虑自定义设置验证机制,最后只要保证登录凭据形式统一即可这里关于启动界面采用Lottie view形式展示,没有使用slash screen设计...bean,然后利用 MMKV 进行键值存放相关 json 数据,这里简单封装了 Gson使用Kotlin扩展函数完成json和对象之间转化,具体可以参考这篇文章Json和对象之间转换封装(Gson...3.数据异常处理关于 BootActivity一些坑这里主要是考虑这样一个场景,当用户等待启动动画时候,由于意外切换到了后台,然后再次进入,由于动画跳转是有条件,即跳转逻辑还没处理完毕,导致退出之后

1.4K00

关于烂代码那些事(下)

大部分IDE都提供了对这类重构支持,类似于:重命名变量重命名函数提取内部函数提取内部常量提取变量  这类重构特点是修改基本集中一个地方,对代码逻辑修改很少并且基本可控,IDE重构工具比较健壮,...1.2.3.一次只做一个较模块级别的重构  之后重构开始牵扯到多个模块,例如:删除无用代码移动函数到其它类提取函数到新类修改函数逻辑  IDE往往对这类重构支持有限,并且偶尔会出一些莫名其妙问题...1.2.4.工程级别的重构不能和任何其他任务并行  不安全重构相对而言影响范围比较大,比如:修改工程结构修改多个模块  更建议这类操作不要用IDE,如果使用IDE,也只使用最简单“移动”操作。...说个真事,几年前做某公司ERP项目,里面有个功能是生成一个报表。而使用我们系统公司里有一个人,他每天要在下班前点一下报表,导出到excel,再发一封邮件出去。  ...做了这些之后,界面只需要不到1s就能展示出来了,不过要说不是这个。  后来去客户公司给那个操作员演示新模块时候,点一下,刷,数据出来了。那个人很惊恐看着,然后问我,是不是数据不准了。

18020

AI智能客服小程序·云开发实践

函数代码也不是很大,一个用户现在更新大概就15秒左右,多任务处理的话应该半小时到1小时之间能跑完; 代码保护私有化,这是开发过程中一些建议和想法,当然现在还没有去做。...就是服务商上传函数和数据库不能被用户修改,因为我们针对使用是小白用户,如果他上去改云函数,会导致这个功能直接崩溃。...开通完之后会选择云开发环境,选择之后点确认后台创建环境,然后创建数据库再上传云函数,智能客服就已经部署完成可以使用了,用户是没有太多感知,只是弹窗点击页面客服功能就上传了,就已经云开发部署了智能客服体系...Q:前一段时间看了一篇文章,自己也动手做了一个,相当于微信bate,用户会给我发一张图片,一个训练集在里面识别这张图片源于哪。...刚才看了AI智能,想问一下AI客服,当你给他发一些其他东西他会自己学习吗?

2.8K11

如何一步一步用DDD设计一个电商网站(十)—— 一个完整购物车

一、前言 之前文章中已经涉及到了购买商品加入购物车,购物车内购物项金额计算等功能。本篇准备把剩下购物车基本概念一次处理完。 二、回顾 动手之前对之前购买上下文内对象做了一次回顾。...2.约束了外部只能通过Product对象来进行商品添加,这样Product构造函数约束在这里无需再次验证(如salename不能空等)。 三、梳理   目前购物车中操作上方法只有一个。...参照目前主流电商平台设计,我们需要增加:   1.修改数量   2.删除   3.选择参与促销(如果存在多个非单品级促销)   4.收藏商品   前面3个比较简单,都是购物车自身概念,只有其中第四点超出了购物车自身范畴...那么自然引出了一个概念——收藏夹。看下最新UML图,如图2所示: ? 【图2】   想会有一部分同学设计收藏夹(Favorites)时候会以另外方式来做,比如像下图3这样: ?...,保证在业务产生变动之后历史数据从DB取出来时候经过一次最新业务验证,确保数据流转过程中合法性。

82630

看完知乎轮子哥编程之路,只想说,收下膝盖...

其编译结果是保存到内存中一段 X86 二进制代码,可以将函数起始地址强制转换成函数指针直接在 C++ 程序中使用,这是因为在生成指令时候遵守了 Visual C++ 中一些 MSDN 里描述得很清楚约定...为了让对方接受为期 3 年训练之后有扎实 C++ 基础、熟练单元测试编写水平以及能够靠直觉给出一些不算太差设计回顾了许多关于 C++ 内容,特别是给指针几节课备课了好几天,并且每一天都要出一个作业...该学生毕业设计一个简单动态语言脚本引擎,并且该脚本引擎实现正确地运行了在上面模仿 Linq 一个列表处理函数库。...你必须把一个软件架构设计得如此之好,才能在需求大规模变更之后,还能在整体上让你代码是漂亮、易于修改、高性能、并且是安全。...这次面试很难,其中一个面试官因为简历上发现了很多跟编译器有关东西之后,决定让实现一个 strncpy 函数,要求是 CPU 对内存访问次数要最少。

2.4K00

回顾cssanimation属性

animation 属性概览 animation相关属性比较多,异名看到自己前几年学习这个属性时候做导图,发现这确实是一种很棒归纳方式,不应该丢掉,就趁着周末时间review了一下,以前基础上做了一些修正...animation-delay 理解和应用steps函数 设计师同学认为上面的文字渐变切换表现很怪异,有种拖泥带水感觉,设计师要求文字切换时候”硬切“。...这种时候如果用js动画的话就很好办了,一个定时器回调改变文案就行,但是因为使用场景问题,并不希望在这里维护一个定时器,而恰好timing-function中提供了步进函数steps。...3dAnim 一些反馈 刚入门时候异名非常喜欢花时间来琢磨动画,工作时间长了之后就发现在业务绝大部分场景中仅仅只是需要一些简单位移、渐变效果,一些组件库甚至都会把这些简单动画封装起来了,慢慢一些属性和实践问题就会被遗忘...觉得这大概就是写博客价值所在,一个是作为自己以后查阅和复习依据,一个是分享,当其他小伙伴遇到和你一样场景时候,也能从你文字中借鉴到一些经验。

93110
领券