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

面试题46:为什么Redis使用SDS不是C字符串

SDS(simple dynamic string),简单动态字符串。是由Redis自己创建的一种表示字符串的抽象类型。C字符串是不可被修改的。但是SDS是动态可以被修改的。...---- 【为什么Redis使用SDS不是C字符串】 首先,C字符串没有记录字符长度,每次都需要遍历,所以复杂度为O(n)。...SDS的len记录了当前字符串的长度,所以获取字符串长度的复杂度为O(1)。 其次:C字符串无法杜绝缓冲区溢出。比如执行strcat函数时,如果没有指定足够的内存,那么拼接后会造成缓冲区溢出。...如下所示: 第三:C字符串存在内存重分配的性能损耗;SDS采用空间预分配和惰性空间释放来减少性能损耗。 第四:C字符串只能保存文本数据,并且字符串里面不能包含空字符,否则就会被误认为是字符串结尾。...SDS则采用二进制来保存数据,并且它使用len属性来判断字符串末尾不是空字符。所以,它不仅可以保存文本数据,也可以保存任意格式的二进制数据,如:图片、音频、视频、压缩文件这样的二进制数据。

24110

Excel VBA解读(146): 使用隐式交集处理整列

例如,VLOOKUP函数通常使用单个值或引用作为要查找的值,使用单元格区域作为查找表。...如果将单元格区域作为要查找的值,并且输入的不是数组公式: =VLOOKUP($A:$A,$A:$C,3,FALSE) 那么Excel将为查找值使用隐式交集,上面公式的结果如下图5所示。 ?...Excel非常有效地执行隐式交集,仅将单个单元格引用传递给公式或函数,不是整个区域。...并且只将该单个单元格视为从属单元格,因此仅当该单个单元格被改变不是当该单元格区域中的任何单元格被改变时,才重新计算公式或函数。...图7 如果使用在参数前添加+号的技巧,那么UDF参数必须是与数据类型匹配的Variant、Double、String或Boolean类型,Range和Object不起作用,因为Excel总是传递结果值不是引用

4.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

过程(六)Function函数过程

2、Sub过程可以作为宏来调用,Function函数过程不会出现在调用宏时选择宏的对话框中,要在工作表中调用Function函数,可像使用Excel内部函数一样使用。...3、在vba中,Sub过程可以作为独立的基本语句调用,Function函数通常作为表达式的一部分。...如果函数结构中没有函数名=表达式1的语句,则该函数使用时会返回一个默认值,数值函数返回值为0,字符串函数返回值为空字符串。...另一种是从VBA的另一个过程里调用。 1、在工作表中调用函数 定义的Function函数和系统内置函数一样,可以再Excel工作表中作为公式进行引用。...function函数过程的调用比较简单,就像使用vba内部函数一样来调用function函数过程。只不过内部函数是有vba系统提供的。function函数是由用户自定义的。

2K20

字符串处理中的通配符

匹配单个字符 1、Excel中通配符的使用: 通配符在Excel中也有很多地方能够用上,比如Vlookup、Match、Sumif函数等: ?...2、VBA中通配符的使用: 在VBA中通配符还有1种#,能够代表1个数字。...在VBA中使用通配符比较简单,比如我们想判断某个字符开头是否是“Str",这个用Left函数也是可以的: If VBA.Strings.Left(str, 3) = "Str" Then...前面举的例子非常的简单,我们用Left函数一样能够做到,但是,通配符能够完成比较复杂的对比,比如,需要判断1个字符串: 第3-5个字符是abc、第9-10个字符是数字、结尾是xy。...##*xy" '立即窗口输入后回车 使用通配符可以简化代码,提高字符串对比的灵活性。 3、小结 了解VBA中通配符的使用,对于经常有字符处理需要的,熟练掌握通配符的使用非常的有必要。

2.1K30

从 Excel 数据分析到 PowerBI 其实是自然之选

由于人们往往需要联合不同的基础表在一起以后再做透视表,这就要求需要一个主要的表作为基础,把相关的数据补充进来,这个过程在Excel中常常由VLOOKUP函数完成。...Excel 函数 VLOOKUP 现在让我们来假设你会用表格和透视表,但很快你会遇到的问题就是:订单表没有产品信息,需要根据产品信息来分析订单建立透视表的时候,就需要在订单表里补充一个产品类别列,会这样做...这是当年 PowerPivot 的官方网站,但现在已经不存在了,微软将 PowerPivot 作为了Excel的内置功能,并在专业增强版提供出来。...如果您仔细留意,这里根本没提VBA,因为 VBA不是为了分析数据而生的,它虽然强大,但它不是用来分析数据的。...简单地说,VBA 因自动化而生,但就分析而言,从 Excel 到 Power BI 是自然而然的。 我在 Excel120 等您加入,一起深入研究这些有意思的事。

1.9K11

Excel无所不能的XLOOKUP,XLOOKUP函数不同场景的应用方法

案例2:查找姓名中包含“二”的年龄 第二回合是通配符查找的案例,VLOOKUP函数在面对通配符*和?查找出来的结果是不一样的,因为*是代表对个内容的通配符,?...案例3:根据姓名从右向左查询部门 VLOOKUP函数反向查找需要使用的IF(1,0)这个我们在前面的文章有过专门的讲解,直接在H4单元格中输入公式=VLOOKUP(G4,IF({1,0},C4:C11,...案例4:根据部门查找对应人数 第四回合是考验大家横向查找的应变能力,此时VLOOKUP函数把他的好搭档HLOOKUP叫来了,因为VLOOKUP擅长的是纵向查找,对于横向查找HLOOKUP函数是大家认可的...:C11=H4),(D4:D11)) Xlookup见状时间不多也没保留,直接在I4单元格中写下公式=Xlookup(H4,C4:C11,D4:D11,0,-1) 到此六个回合的PK就结束了,大家作为考官来评价一下哪个函数更厉害...最后给大家分享一下低版本Office的同学如果不想升级软件,可以使用VBA自定义一个XLOOKUP函数哦,方法如下: VBA自定义XLOOKUP函数

42150

这些年,Excel不知道坑死了多少人,你有幸免吗?

是否有一项工作是给会用 VLOOKUP 付钱的?工作兑换的结果是工作的有商业价值的交付成果,很多人在 Excel 的坑里还没爬出来呢。...首先,如果你不是在坚持用10年前的工具,好歹你安装了Office2016或Office365,你可以看到上面的按钮,点击它,看到: 我完全相信这个界面上的文字是人工翻译不是机器翻译,因为它写得非常准确...Excel确实很强大,强大到: (图片来自于网络) 但作为20来岁的职场人,我们要的不是用 Excel 来打发时间,而是生产力。...作为文化,我们很希望某功夫是真正的力量,但也许不是,你可以一辈子研究你热爱的功夫,但在真正的力量面前,技巧算个啥。另外一个事实是:真正的力量根本不需要技巧。...且不说,很多人是不可能掌握很多Excel技巧的,即使是掌握了,在很多情况下,也不是正确的选择,包括但不限于:函数,透视表,VBA。 很多艺人,没有正确的选择伴侣,忙碌一生,不知道为了谁?

1.9K10

基于单元格值查找并显示图片

标签:Excel技巧,VBA 之前的文章中介绍过这个技巧,这是在mcgimpsey.com中看到的,也辑录于此,供参考。 一图胜千言。...在Excel中,可以在一个单元格中显示一张根据另一个单元格的信息变化的图片。...由于Excel中的图片不能放在单元格中,而是浮在工作表顶部,并且由于查找函数返回的是值,不是图片,因此需要一些VBA代码来模拟查找图片并将其放置在单元格中。...图1 图片放在工作表Sheet1的任何位置,在图片所在的单元格F1中,输入以下公式: =VLOOKUP(A2, PicTable, 2, False) 然后,在该工作表Worksheet_Calculation...VBA代码隐藏所有图片,然后显示与F1中的值相对应的图片,必要时重新定位。

22910

常用功能加载宏——单元格数字与文本转换

Excel为了方便使用者,对于单元格的格式是非常的开放的,数字不但可以作为加减乘除用的常规数字,还可以作为文本。很多新手都会碰到数字存储格式上造成的问题,因为没有注意到数字真正存储的格式。...但是在某些函数使用的时候,比如VLookup函数,如果要查找的数据和查找范围内的数据是不同存储格式,VLookup函数会返回错误。...很多新手就会用Ctrl+F的查找框去查找,然后会非常不理解VLookup函数,明明看见用Ctrl+F的查找框能找到的东西,函数却返回错误!...对Excel熟悉的人会使用分列功能来完成数字与文本的转换,用VBA来实现转换功能自然也没有问题: ?...For j = 1 To UBound(arr, 2) '将数据转换为文本 arr(i, j) = VBA.CStr

1.9K10

CA1831:在合适的情况下,为字符串使用 AsSpan 不是基于范围的索引器

Span 上的范围索引器是非复制的 Slice 操作,但对于字符串中的范围索引器,将使用方法 Substring 不是 Slice。 这会生成字符串所请求部分的副本。...AsSpan 不是基于 Range 的索引器,以避免创建不必要的数据副本。...从显示的选项列表中选择“对字符串使用 AsSpan 不是基于范围的索引器”。 何时禁止显示警告 如果打算创建副本,可禁止显示此规则的冲突。...ReadOnlySpan slice = (ReadOnlySpan)str[1..3]; ... } 相关规则 CA1832:使用 AsSpan 或 AsMemory 不是基于范围的索引器来获取数组的...ReadOnlySpan 或 ReadOnlyMemory 部分 CA1833:使用 AsSpan 或 AsMemory 不是基于范围的索引器来获取数组的 Span 或 Memory 部分 另请参阅

1K00

VBA数组用法案例详解

具体操作1、VBA数组的定义方法下面是几种数组常用的定义方法,一维数组的定义、二维数组的定义直接赋值定义、调用Array函数定义、调用Excel工作表内存数组''''''''''''直接定义给数组赋值'...一维常量数组的定义Sub arrDemo1()Dim arr(2) As Variant   '数组arr(0) = "vba"arr(1) = 100arr(2) = 3.14MsgBox arr(0...NextNextEnd Sub ''''''''''''用array函数创建常量数组'一维数组Sub arrayDemo3()Dim arr As Variant   '数组arr = Array("vba...mylook()Dim arrarr = [{"a",10;"b",20;"c",30}]Range("a1:b3") = arrMsgBox Application.WorksheetFunction.VLookup...("b", arr, 2, 0)  '调用vlookup时可以作为第二个参数End Sub '动态数组的定义方法Sub arrDemo5()Dim arr1() '声明一个动态数组(动态指不固定大小)Dim

1.7K00

疫情期间竟然还有这种病毒?解密古老而又神秘的宏病毒

Word文档不再是当年那个手无缚鸡之力的书生,变成手法毒辣的"文字幽灵"。...恶意行为字符串 常见宏病毒执行危险操作时代码中含有的字符串: | 字符串 | 描述 | | ------ | ----- | | http |   URL连接 | CallByName |   允许使用一个字符串在运行时指定一个属性或方法...使用VBA_Password_Bypasser打开这个文档文件就可以正常打开VBA编辑器了,不需要输入密码。...那为什么Office 文件非常适合作为恶意 payload 的载体呢? 这是因为 Office文件的默认设置是支持 VBA 代码所以允许 VBA代码的代码执行。...生成宏后,你可以快速创建一个Excel 文档: 打开 Excel 转到视图选项卡(View Tab) - >宏 - >查看宏 添加一个宏名称,为 book1 配置宏,然后单击 "创建" 用生成的代码替换所有当前的宏代码

5.5K30

告诉你什么是Excel VBA对象模型及如何引用对象

标签:VBA,对象模型 要编写Excel VBA程序,必须知道对象。可以认为,VBA基于面向对象编程,这意味着VBA程序主要是在处理(或操控)对象。...所以,集合允许同时处理一组完整的VBA对象,不是处理每个单个的对象。 以下是常见集合的示例: Workbooks,当前打开的所有Excel工作簿的集合。...引用对象 在编写VBA代码时,了解如何引用对象是至关重要的。很明显,想要开始处理特定的VBA对象时,必须先识别它,也就是说,告诉VBA要处理哪个对象。...例如,假设要引用Range对象,参考上图所示的对象模型层次结构,Range对象处于第4层: 现在,自顶下使用(.)连接这些不同的对象,从而引用Range对象: Application.Workbooks.Worksheets.Range...假设要处理工作簿Book1的工作表Sheet1中的单元格A1,则其完全限定引用为: Application.Workbooks(“Book1.xlsm”).Worksheets(“Sheet1”).Range

4.3K30

精通数组公式16:基于条件提取数据

5.这里没有考虑使用VBA解决方案,有时使用它们是自动执行数据提取的好方法。 为何提取数据的公式如此复杂? 当从表中提取数据时,实际上是在执行查找。...真正想要的是查找列包含数字,其中单元格E14中第一个TRUE是数字1,E17中第二个TRUE是数字2。 ?...图2:辅助列公式的第1部分涉及到AND函数 如下图3所示,将AND函数作为SUM函数的第1个参数,使用相对引用将公式所在单元格的上方单元格作为SUM函数的第2个参数。...图5:数据变化时,公式结果会自动更新 示例:使用辅助列,OR条件,VLOOKUP作为查找函数 如下图6所示,使用了OR条件的辅助列并且放置在第1列,因此可以使用VLOOKUP函数。...ISNUMBER/MATCH函数组合运算更快且对于多个条件更容易构造。

4.2K20

数据地图系列9|excel(VBA)数据地图!

今天要跟大家分享的是数据地图系列的第九篇——excel(VBA)数据地图! 关于VBA在excel中的应用非常广泛,本篇仅仅是给出示例代码,不会对基础操作做太过详细的讲解。...(使用vlookup函数) ? 8、编辑VBA填充代码 Alt+F11打开VBA代码编辑器,在thisworkbook中写入如下代码后关闭VBA窗口。 ?...C" & i).Value).Interior.Color '对各省的图形使用其颜色栏的值作为名称所指向的单元格的颜色填充 Next i Application.ScreenUpdating...记得在地图做完之后一定要使用分档阀值区域作为图例引用在数据地图周围。选中D9:E13区域,点击照相机功能,然后在数据地图区域释放。 ? ? ? ?...还有一点需要提示一下,这种内涵VBA宏代码的文件需另存为xlsm格式才能保留宏功能,否则就会前功尽弃。

4.8K60

VBA专题06-2:利用Excel中的数据自动化构建Word文档—熟悉Word VBA

VBA是一种通用编程语言,适用于任何内置有VBA的应用程序,因此Word VBA与Excel VBA的语法一样,只是处理的对象模型不同。下面,我们通过一些示例语句及其作用描述来熟悉Word VBA。...(注:这些语句来源于作者早期发表的VBA语句集,长期关注作者的朋友可能会有印象) Application对象 (1) Application.ActivePrinter ‘获取当前打印机 (2) Application.Height...Application.Build ‘获取Word版本号和编译序号 (5)Application.Caption ‘当前应用程序名 (6)Application.DefaultSaveFormat '返回空字符串...复制当前文档中的第一段 (89) Selection.Copy Documents.Add.Content.Paste '复制所选内容到新文档中 (90) ActiveDocument.Bookmarks("Book1...").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置 (91) Selection.GoToWhat:=wdGoToLine, Which:=wdGoToAbsolute

2.6K20
领券