问: 我有一个调用自己的函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var !...: Type "a" or "b": a got input: a 但是,如果我输入别的东西,然后输入 "a" 或 "b",我会得到这样的结果: Type "a" or "b": purple You...Type "a" or "b": a got input: None 我不明白为什么 get_input() 函数返回的是 None,因为它本应只返回 my_var。这个 None 是从哪里来的?...我该如何修复我的函数呢? 答: 它返回 None 是因为当你递归调用它时: if my_var != "a" and my_var !...Python3 documentation 因此,除了在 if 语句中调用 get_input() 之外,还需要返回递归调用返回的内容。
Math.max() 是 JS 内置的方法,可以从传入的参数中,返回最大的一个。例如: Math.max(1, 2, 3); // => 3 如果Math.max()只使用一个参数,结果是怎么样的?...Math.max(); // => -Infinity 不带参数的 Math.max() 返回的结果是 -Infinity,接下来,我们来看看为什么会这样。...., numN)接受多个数字参数,并返回它们的最大数量。...现在就知道为什么Math.max()在不带参数的情况下调用时返回-Infinity:这是在一个空集合上定义max函数的一种方式。 这与加法类似,max的-Infinity和加法的0是一样的。...Math.min()也具有相同的行为-当不带参数调用时,它将返回Infinity。
此行为是正常的,旨在以这种方式工作。引用单个数据源的多个查询如果多个查询从该数据源拉取,则可能会出现对同一数据源的多个请求。 即使只有一个查询引用数据源,这些请求也会发生。...如果查询由一个或多个其他查询引用,则独立计算每个查询(以及它依赖的所有查询)。在桌面环境中,使用单个共享缓存运行数据模型中所有表的单个刷新。...在云环境中,每个查询都使用自己的单独缓存进行刷新,因此查询无法受益于已为其他查询缓存的相同请求。折叠有时,Power Query的折叠层可能会根据正在下游执行的操作生成对数据源的多个请求。...隔离多个查询可以通过关闭查询过程的特定部分来隔离多个查询的实例,以隔离来自重复请求的位置。...此步骤假设你不担心源之间的数据泄漏,因此,可以使用Excel中的“设置快速组合”选项中所述的“始终忽略隐私级别”设置设置来完成数据隐私防火墙的禁用,或者使用“忽略隐私级别”,并可能会提高Power BI
很多人经常会有这个问题,为什么我的自动化流程不执行。...我的流程第二步:请检查自动化流程是否有执行请来到后台【流程日志】,如果运行成功的流程就会显示【执行成功】并有一个【运行id】。...自动化流程执行失败第三步:确认流程是上线状态,但是流程没有执行,为什么?如果流程确认是上线状态,需要确定你的流程是否符合你设定的触发条件,如果没有达到对应的条件,是不会触发的。...常见的一些没有触发的条件如下:【定时查询类应用】:比如腾讯文档、邮箱、mysql等应用目前都是定时查询,而不是实时触发,所以需要稍作等待【触发条件不满足】:在设定了执行条件、查询条件等情况,由于数据设定的情况没有满足...,被判断了没有执行【流程执行过程中修改】:在有【延迟执行】的流程上线后,进行修改,会导致后续的流程不执行
我为什么不建议使用框架默认的 DefaultMeterObservationHandler 背景知识 最近,我们升级了 SpringBoot 3.x,并且,升级后,我们全面改造了原来的 Sleuth 以及...指标数据是统计数据,是聚合数据,是一段时间内的数据,而链路追踪数据是实时数据,是每个请求的数据 但是像是链路追踪上报在生产上肯定不能 100% 上报(上报性能,还有成本考虑,以及查询的存储性能有限,成本不能太高...为何会出现内存溢出 我们通过增加如下启动参数启动并且在退出的时候 dump JFR: -XX:StartFlightRecording=disk=true,dumponexit=true 或者使用下面的参数在内存溢出的时候...} log.info("cost {} ms", System.currentTimeMillis() - start); } } } 在我的电脑上...我们将全局的 ObservationHandler 改为什么都不做的,对比下: package com.github.hashjang.wwsmbjysymrdo; import io.micrometer.common.KeyValue
Run 的 Apk 2.1 textOnly 属性 我们知道,AS Run 起来的 Apk,会使用 Debug 签名进行签名,不过安装不上,并不是签名的问题。...这就是为什么你无法安装 Run 出来的 Debug.apk。 2.2 为什么要这么设计? 这个问题,对于大多数开发者来说,基本上不是问题。...如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。 希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持!...毕业3年,我是如何从年薪10W的拖拽工程师成为30W资深Android开发者! 腾讯T3大牛带你了解 2019 Android开发趋势及必备技术点!...八年Android开发,从码农到架构师分享我的技术成长之路,共勉! 最后祝大家生活愉快~
Run 的 Apk 2.1 testOnly 属性 我们知道,AS Run 起来的 Apk,会使用 Debug 签名进行签名,不过安装不上,并不是签名的问题。...当你使用 adb install 安装 android:testOnly="true" 的包时,输出的错误信息,明确的标记了无法安装一个 TEST_ONLY 的包。...这就是为什么你无法安装 Run 出来的 Debug.apk。 2.2 为什么要这么设计? 这个问题,对于大多数开发者来说,基本上不是问题。...因为我们只要保证正常的提测、发布流程,基本上是很难将一个 Run 出来的 Apk 分享给别人的。 testOnly 只是一个标记,标记了它是一个测试的版本,其实并没有任何实质性的东西。...如果我们非要安装一个带有 testOnly 的 Apk,其实也是有办法的,否则 AS 又是如何将 Run 起来的包,安装到设备上的呢?
我再次的阐述一下,用索引和走索引不是一个意思! 其实每天都有人私信我,如果遇到一些好的问题,我会拿来单独写文章的。比如,昨天就有人问我,like 查询 % 在前为什么不走索引?...不能人云亦云,我们应该从根上理解它,为什么要这样设计?为什么不走索引? 其实结果对我来说,并不重要,重要的是过程。设计过程或者实现过程,这才是我最关心的。...所以,今天我就从根上给你说一说为什么 like 查询 % 在前为什么不走索引? 例如,看这个例子: ? 说到这个例子,估计很多人会提到最左匹配原则。那么为什么要搞一个最左匹配原则呢?...为什么不搞一个最右匹配原则? 这个问题,其实是和 B+Tree 有些关系,索引树从左到右都是有顺序的。对于索引中的关键字进行对比的时候,一定是从左往右以此对比,且不可跳过。 为什么是最左匹配原则?...后面,我再给你们讲讲,为什么说索引的离散型越高越好!
为此,我邀请了我的好朋友资深保险规划师杨震,请他从客观中立的角度给大家开一次讲座,全面解读保险里的陷阱,避免大家日后被坑。讲座开始前,先上一波干货,给大家分析一下日常买保险常见的各种不正确姿势。...而那些花高价买的万能险、返还险等,认为包括了“教育金”和“养老金”,不但有保障,还可以理财,很划算。但其实,这种保险的价格比纯保障型的贵好几倍,同样的价格,保额也严重不足。...但很多人不知道,国家早已对各大保险公司疾病进行了统一,前25种重疾病种各家保险公司定义都是相同的。 所以,我们看重的数量应该是,重疾条款中附加的轻症和中症的项目。...要不然,我们花再多钱也是白搭,更得不到风险防御的效果。 买保险的4个正确打开方式 买保险的各种不正确姿势,每天都在我们身边上演,这么深的水,怎么才能避免被坑钱呢?...其实多花很多冤枉钱 有的朋友在代理人的说服下很容易就买了一份“返还险”,认为到期了不生病还可以返还保费,像是捡了一个大便宜。 但其实,这类保险是两全型保险,在寿险的基础上附加一款重疾险。
我的接口返回的数据顺序总是不固定问题描述====我在开发突发奇想。将表头信息也给查出来一并返回给前端了。但是正因为这一举动却带来嘲讽。...说我的接口顺序不对问题定位====首先说明下这个问题是刚入行时遇到的。当时很是困惑,当然啦现在看来真的是贻笑大方了。刚入行那会一直都是使用Mybatis 框架实现数据的获取的。...突然接到一个需求是要求将数据列按照一定顺序返回。前端直接按照我返回的顺序进行渲染。刚接到需求觉得很简单,将数据依次写入就行了。关于具体需求我们就不深究了。下面梳理下当时发现问题及解决的一个过程吧。...决定一探究竟为什么LinkedHashMap 可以实现按照写入顺序排序。通过结构图我们清楚看到他是HashMap的子类。所以他的存储结构和HashMap基本上是一样的。...因为这里是Bug解析所以关于LinkedHashMap源码的东西我就不深入研究了。最终我追踪到了是其内部linkNodeLast这个方法使其具有写入顺序的特性。
引言 我是@程序员小助手 Rman,昨天看到一个题目,说在两台PC之间快速传几百G的文件,有没有什么好的快的办法。 考虑到操作系统平台,有Windows,Linux,MaxOS,这些都有差异。...参看 两台电脑之间如何快速传输几百G的文件?-两台,传输,文件,电脑 ? 这里说说为什么不推荐另外2种。 一个是网络存储。...为什么不推荐,因为pandownload的被举报,开发者收监,百度的名声臭的不可救药。所以不推荐。 国外的网速,你我都是知道的。 还有一个是,软件共享。 有人说这很简单啊,局域网有QQ,不就行了?...或者用比较老的飞秋,传输起来不都是贼快吗? 可是你有没有考虑到,如果是Windows要传输给苹果笔记本,或者Linux发行版要传输给Windows,这些软件有没有跨平台的应用呢?...回答发出后,有不少网友回复说, “我直接拔下来硬盘,接到新主机上。新主机启动,挂载为新的磁盘,立马可用!” 这个也是经不起推敲的。
不知道小伙伴们有没有遇到过标题的问题,明明同样的一套代码,在自己本地就是运行不起来,或者说在本地只改了一个无关痛痒的代码,看上去人畜无害,结果就报各种乱七八糟的错误,但是同事却能运行的好好的。...这种情况下其实你们的代码版本是不一样的,并不是标题提到的一样的代码,但是很多时候自己内心会以为代码是一样的。...还有就是对方运行的效果可能是缓存数据,可以清除一下对方的缓存,maven 的缓存,浏览器的缓存等所有可能有缓存的地方,然后再次运行,确保在对方的环境下是真正的能正确的运行。 真的没改动代码吗?...还有一种情况就是自己本地的确实改动了部分代码,但是改动的地方看上去是人畜无害的,但是就是跑不起来。...总结 反正跑不起来肯定有原因,不是代码原因就是环境原因,一般经过上面几个方式的排查,都能找到问题了,如果再不行,重新查询拉取代码库也未尝不是一个方法,当然如果实在解决不了,咨询前辈也是一个很有效的方法。
点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!...tag_id=1234; Select * from post where id in(123,456,567,9989,8909); 为什么会这样做呢?...原本一条查询,这里却变成了多条查询,返回结果又是一模一样。 事实上,用分解关联查询的方式重构查询具有如下优势: 让缓存的效率更高。 许多应用程序可以方便地缓存单表查询对应的结果对象。...另外对于MySQL的查询缓存来说,如果关联中的某个表发生了变化,那么就无法使用查询缓存了,而拆分后,如果某个表很少改变,那么基于该表的查询就可以重复利用查询缓存结果了。...将查询分解后,执行单个查询可以减少锁的竞争。 在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。 查询本身效率也可能会有所提升 可以减少冗余记录的查询。
对于 MySQL 慢 SQL 的分析 在之前的文章,我提到过 SQL 调优一般通过下面三个工具: EXPLAIN:这个是比较浅显的分析,并不会真正执行 SQL,分析出来的可能不够准确详细。...但是不能直观的看出来为啥会走错索引,需要通过 OPTIMIZER TRACE 进行进一步定位。但是在进一步定位之前,我想先说一下 MySQL 的 InnoDB 查询优化器数据配置。...会考虑 where 条件,以及 order 条件,通过里面的条件找有这些条件的索引 每个索引的查询消耗是多大 选出消耗最小的那个查询计划并执行 每个索引查询消耗,需要通过 InnoDB 查询优化器数据。...执行时间正常的 SQL 为啥 user_id 不同也会走分析出走不同索引的原因 同样的,由于所有索引的优化器数据是随机采样的,随着表的不断变大以及索引的不断膨胀,还有就是可能加更复杂的索引,这样会加剧使用不同参数分析索引消耗的差异性...可以考虑在业务低峰的时候,定时 Analyze 业务关键 Table 依靠表本身自动刷新数据机制,参数比较难以调整(主要是 STATS_SAMPLE_PAGES 这个参数,STATS_PERSISTENT
MySQL各个版本查看的方法均一样 另外和慢SQL相关的其他主要参数如下: slow_query_log: 这个参数用于启用或禁用慢SQL监控。设置为1表示启用,0表示禁用。默认值为0(禁用)。...可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log。 long_query_time: 用于定义慢SQL的阈值时间,单位为秒。...执行时间超过该阈值的SQL语句将被记录到慢SQL日志中。默认值为10秒。 log_queries_not_using_indexes:如果设置为1,则将未使用索引的查询也记录到慢查询日志中。...默认情况下的值是0,也就是不记录;而将值改为1时,此类SQL将会被记录。...其他SQL 除了以上的情况外,复制线程的查询、被DBAkill的正在运行的SQL或部分未运行完毕的SQL也不会记录在慢SQL日志中(不过部分情况再MySQL8.0中有所变更),因此需要大家根据实际情况多总结及测试
动态路由:处理具有动态参数的路由。通过在文件名中使用方括号包裹参数名称,可以在路由路径中指定动态片段。...客户端路由:Next.js 使用内置的客户端路由器来处理客户端导航。您可以使用 next/link 组件或 router 对象来实现客户端路由导航。...为什么我们需要从webpack5升级到Turbopack?构建速度: Turbopack 的设计目标之一是提供快速的构建和交付体验。...为什么不选择viteVite 依赖于浏览器的原生 ES Modules 系统,不需要打包代码,响应更新很快,但是如果文件过多,这种方式会导致浏览器大量进行网络请求,会导致启动时间相对较慢。...所以nextjs作者选择同 webpack 一样方式,打包,但是使用了 Turbo 构建引擎,一个增量记忆化框架,永远不会重复相同的工作。
无论你是Linux萌新用户还是老司机,使用命令行总会遇到不懂的问题。 遇到问题要么去论坛询问、谷歌搜索,要么查自带命令手册(RTFM),过程耗时,结果也不直观。...然后howdoi马上就能返回详细操作教程,实现了用日常对话的形式来查询Linux交互命令。 ? 这么好用的工具安装起来也不复杂。 安装步骤 安装howdoi只要两步,还需要PHP 5.0以上版本。...: howdoi [-n -v -h] — question 其中,-n 代表返回的解答数量(默认为1),-v表示返回完整解答(默认情况只返回相关代码),-h为显示此问题的帮助信息。...,返回结果除了有基本的操作指导,还有关于这个问题进一步的建议。...askbuntu.com论坛上的提问,论坛上已有的问题解答都可以通过本工具实现对话式查询。
、错误处理、中间件等等功能,又得花费不小的功夫,所以 Next.js 的 API Route 更多是为你的全栈项目编写一些简易的 API 供外部服务,这也可能是为什么 Next.js 宁可设计 Server...一开始的 User CRUD 例子,则可以将其归属到一个文件内下,这里我不建议将后端业务代码放在 app/api 下,因为 Next.js 会自动扫描 app 下的文件夹,这可能会导致不必要的热更新,并且也不易于服务相关代码的拆分...不过对于 TS 全栈开发者,似乎也没必要编写 API 文档(接口自给自足),更何况还有 RPC 这样的黑科技,不担心接口的请求参数与响应接口。...后续我将会出一版完整的我个人的 Nextjs 与 Hono 的最佳实践模版。...也说说我为什么会选用 Hono.js 作为后端服务, 其实就是 Next.js 的 API Route 实在是太难用了,加之轻量化,你完全可以将整个 Nextjs + Hono 服务部署在 Vercel
Link 将预取页面,并且导航将在不刷新页面的情况下进行. ...title 页面 们通过查询字符串参数(查询参数)传递数据,通过查询字符串传递任何类型的数据. ...我们导入并使用 useRouter 函数,next/router 函数将返回 Next.js router 对象. ...我们使用 query 获取查询字符串参数 获得标题需要的参数 router.query.title. ...创建动态路由时,我们 id 放在方括号之间.这是页面接收到的查询参数的名称,因此/p/hello-nextjs 在 query 对象就是{ id: 'hello-nextjs'},我们可以使用 useRouter
大家好,又见面了,我是你们的朋友全栈君。...综合了网上各种说法,得出如下方案: 一、如果你的路由器还能够用用户名telecomadmin密码nE7jA%5m登陆,那就拔掉电话线直接跳到步骤八 二、拔掉路由器的电话线,下载提供的包并解压。...Advanced&nosubmenu=0&nextpage=tools/update_t.gch&title=Ftp&path=Tools->Ftp&nextgch=tools/update_gch.gch&nextjs...八、重启路由器。...至此路由器已经被激活成功教程。 若要配置上网,则在网络》宽带设置中新建wan连接即可。
领取专属 10元无门槛券
手把手带您无忧上云