科学健康资讯 · 内容仅供参考,不替代专业诊疗 联系我们|疾病百科
操作系统

vb net数组(vbnet数组下标如何设置为1)

2023-05-01 操作系统 本文链接

又搞了(不能说全部搞定)一种计算机语言Lisp的动态链接库调用,每个语言的调用方式都有不同,甚至坑很深,Lisp就被困了几天,开始是字节数组问题,后来是数组指针问题,最后一个问题估计是Lisp的FFI的问题,即char*可以接收到数组里的数据,但是修改不了,输出不变,故无法应用,等后续版本吧,估计很难,好久没升级了。不过支持FFI的语言相对好些…

C,C++,Python,Java,C#,Go,Rust,Zig,Nim,Dart,Ruby,Lua,PHP,VB,Delphi,Ada,Fortran,Julia,Perl和今天的Lisp一共有20种计算机语言了,真想不到再有什么计算机语言比较流行的了…

又搞定了一种计算机语言Perl的动态链接库调用,每个语言的调用方式都有不同,甚至坑很深,Perl就被困了几天,到现在还没有解决字节数组的问题,因为高级语言的数组无法定义uint8,FFI没有测试成功,只是win32::api可以调用。不过支持FFI的语言相对好些…

C,C++,Python,Java,C#,Go,Rust,Zig,Nim,Dart,Ruby,Lua,PHP,VB,Delphi,Ada,Fortran,Julia和今天的Perl一共有19种计算机语言了,真想不到再有什么计算机语言比较流行的了…

谁说VB/VBA就简单了?

1、VB/VBA的成功竟然可以归谬于太过成功。因为入门确实太简单了,允许太多的业余人员参与到编程中来,让海量的VB/VBA应用中,充斥着编译器公式化的指令代码。不仅在源码层面上无法优雅,更是没法在二进制层面上显示能耐。

2、性能,是VB/VBA无法绕过的梗。这个梗,在使用者眼里自嘲为不差时间,在非使用者眼里轻蔑为就那样样!务实的,尚可归于C/C++来兜底,毕竟Python也这么干,也不丢人。但是,VB/VBA真的简单吗?

3、同样是从裸机时代走过来的工具,要说人家只有小学生能耐,显然是在高看自己。VB/VBA入门简单,并不意味着精通也同样简单。任何一门开发工具(语言),源码书写层面的难度(语法)能有多难?但是,任何一门开发工具的大牛,之所以牛,从来都不在语法规则的熟练程度上。

VB/VBA也一样,哪怕翻遍官方文档,内容无非关键字、语句、内置函数、对象(属性、方法),常数、运算符、数据类型之类的。如果想在这样的内容里找到实用性知识,恐怕就会失望了。甚至都没有讲内存有关的概念,更别提如何性能优化和为什么。

计算机软件层面的抽象,首先就要讲内存。作为抽象的基座,VB/VBA会讲指针吗?C/C++是会讲指针,但除了把指针(变量)解释为地址外,又有几个能更进一步把寄存器、缓存、内存条、磁盘一类的关系说清楚的?

所以,VB/VBA不说那些复杂的,不仅有大家通常理解的用户对象(业余)有关,更有大家通常理解的用户(专业)有关。VB/VBA既然是业余人士的玩器,自然能玩就行,纠结为什么的动机都没有。汇编/C/C++一类专业开发工具,通常将有计算机专业背景的人视为用户,它不会从头教你计算机原理。二者角度不同,但讲为什么的部分都不会在工具使用教程上。所以,编程的功夫,从来都不在工具身上,拿工具的封装性来标榜技能的优越,是很危险的。

4、VB/VBA中很多问题,看上去难以回答。譬如:VB/VBA不支持多线程编程,不支持Python那样的切片功能...但是,如果知道VB/VBA中的内存管理机制,就不会有所谓的不稳定。如果知道VB/VBA中的字符串其实是VB/VBA中唯一的真数组,就不会说不支持之类的瞎话。

然而,别说VB/VBA的用户,就连很多专职程序员,面对这些问题也都会甩语言的锅了事。记得有很多人在讨论中文编程时,都头头是道地说,最后都一样。希望,学习编程的人,无论是初入门者,还是多年的老油条,都要有『最后都一样』的视角!

欢迎关注BtOfficer(收藏、点赞、关注+转发) ,更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!

VB/VBA存储的端序

1、要想制造高性能的VB/VBA代码,离了指针是很难办到的。

2、因为VB/VBA里,用Long来表示指针,而32位(包括64位兼容的)计算机里4字节整数的处理,是最快的方式!

3、要想用指针来处理数据,那就得明白数据在内存里的结构(最近系列文章正在分享,欢迎关注),更需要明白数据在内存中的存储顺序问题,这就是端序啦!

4、端序1词最早出于《格列佛游记》中小人国吃鸡蛋,他们不知道是从鸡蛋小头吃起,还是从大头吃起,进而引发了争论!后来,随着计算机的发展,也出现了同样的状况!

5、比如字符串"abc",a在b的左边,c在b的右边。如果将其放入字节数组aByte中,则a为aByte(0),b为aByte(1),也即是说左边的存储到低地址,右边存储到高位置。这就是小端序。

6、再比如数字12345,左边的1比右边的2要大,也即是说低位置是高单位,高位置是低单位。这就是大端序。

7、很显然,在现实生活中,我们同时在使用大、小端序,而且都符合习惯。那在计算机里,能否这样呢?

8、答案是否定的,这跟计算机只认整数的原理是一样的,为了简化计算机设计,一种类型的计算机往往只默认一种端序,尤其是在存储领域。

9、我们常用的X86计算机,就是小端序的。这与我们平时大部分人的习惯顺序是一致的,也即“从小到大”和“从左至右”是主流。

10、但是理解大端序也非常有必要,比如汇编机器码中的地址,就需要端序转换。堆栈结构,也需要有类似的理解。

欢迎关注近期文章,将有具体应用哦!对大小端序也有专门的转换函数,并有更深入的讨论。

<[比心]点击头像加关注[比心],BtOfficer不仅站在多年老CPA,老投行以及常年IT投资的角度,更站在专业IT的角度,给广大非IT人员分享最简易的IT方案。不仅分享技术,更有工具等你来拿。总之,从行业和投资看IT,从IT看职业,带你涨知识。>

07年大学毕业到现在15年光景,接触过汇编,c/cpp,asp,vb,r,java,python,c#,node,js,vue,react,大概汇编和c/cpp,asp这些语言是在大学时期吃过苦了的学习的,也时常听一些高手在炫耀自己的学习能力,比方说python学习半天就学会了,java一个月就学成找了10多k的薪水等等,今天一个刚毕业的学生也在说这个问题,甚至怀疑自己是不是选错行等等,说自己大学学了4年,看着好多脚手架根本无从下手,一个月了公司的项目还没有上手!

作为一个工作15年的大龄程序员,听到一些人在网上贩卖焦虑,也有一些自己的观点,说一些我理解的见解,老手轻喷

1. 我是科班出身,大学学的主要是汇编和c/cpp,接触过vb和asp,毕业后在cpp行业工作几年,到目前还觉得c/cpp语言没有学明白,甚至一度认为cpp是很糟糕的语言,这门需要断断续续用了15年

2. 大概14年的时候接触了python,那个时候不到30岁,看了两天左右吧,大概就会用这个处理一部分数据,也经常给人说python特别简单,看两天就能上手等等,真实的情况是写每一步都得网上查,包含一个函数的用法,都得找,真正做起项目来也是吭吭哧哧,而python大概能上手也是三年后的事情了,那个时候是接触了一个图像识别和大数据的项目,封闭工作了两年,建模,对接,各种计算库,许多常用的框架等等,两年的磨合才敢说会用这个语言解决一些问题

3.接触java大概也是2015年,真正语法学习大概花了半月左右,主要是有c的基础,与其说学会不如说是对着网络查找能看懂罢了,后来项目重构要求用spring boot,后来的微服务,真正说java入门也是2019年疫情封闭在家,分析了底层源码和常用的中间件的源码,重新的对着书系统的看了4个月,才算是个好像明白了点java

4.其他的语言也是类似,眼睛是会骗人的,看着表面上是学会了,但是真正的让这门语言变成你的肌肉记忆需要花费好长的时间,就好比目前在学习c#这门语言,断断续续学了两个月,已经可以写出接口写出桌面了,但是涉及到基础的数据类型转换,比方今天的一个json数组类型的字符串序列化,就消耗了半个小时的时间,而真正要完全掌握,需要每天学习,且可能是两年后的事情了

说了这么多,仅仅将我的学习过程陈述出来,目前也在创业,有好多就是套路,比方说给客户展示一些技巧,也是提前练习了好多遍,目地就是给客户一些好的映像罢了

越来越觉得学习,创业是个长期的过程,我们只负责努力,其余的交给天意

VB/VBA/VBS内置函数有哪些?

1、相信使用VB/VBA/VBS的小伙伴们都知道,内置函数早已成为VB语法体系的重要组成部分,或多或少都会使用。脱离了内置函数,使用VB的感觉,大概跟我们身边没有手机的感觉一样的,总感觉少了点什么。事实上,内置函数在各大开发语言里,都扮演着举足轻重的作用,可以极大节约源码的编写量,是编程工具预置的基础应用单元。

2、如果说语句,主要用于控制代码结构,构成代码块的主干,那函数无疑就是完成具体功能,成为主干上丰富多彩的花叶。尽管函数离不开语句,但函数可以进一步优化语句的表达。所以,整体上认识VB的内置函数,将有助于我们更好地使用VB。

3、但是VB的内置函数那么多,比如字符串字符大小函数Len,字符串截取函数Left、Mid、Right函数,数组上下标获取函数Lbound、Ubound等,能否有一个一览的归类方式呢?相信看过笔者之前VB虚拟机系列文章的朋友,应该对下面这张概览图不会陌生。没错,这就是VB所有内置函数,大概可以分为:字符串函数、数学函数、金融函数、日期函数、转换函数、其他相关函数。

怎么样,还是很齐全吧,具体使用相关的疑问,欢迎讨论哦,笔者将尽最大可能回复。

[心]欢迎关注BtOfficer[心](收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!

Excel公式算编程?还别说,真是一门编程语言!

1、编写Excel公式,也算编程?是不是很难接受?是的,这很难让人接受。写公式的人不会这么认为,写程序的也不会这么认为。

首先,单元格支持的数据类型,无非数值和文本,这对编程而言是远远不够的。其次,公式不支持定义变量啊,没有变量的编程语言,能想象么?再次,公式就那几样,是个公仔啊,也没法繁衍自己的概念啊!最后,公式的参数都是单元格,单元格是有限的啊,无法解决无穷问题,这就意味着公式不是图灵完备的啊,也就没法解决任意计算问题。

综上,公式顶多算一蹩脚的脚本,算不上真正的编程语言。

2、但是微软声称,Office自1980年发布以来,Excel 改变了人们组织、分析和可视化数据的方式,为每天使用它的数百万人提供了决策依据。其中,Excel公式承担着非常关键的角色,用户使用规模比世界上所有 C、C++、C#、Java 和 Python 程序员的总和还要多一个数量级。 微软的意思是,Excel公式这口鱼塘,养得差不多了,是时候展开收网行动了(是时候将Excel公式升级为一门成熟的编程语言了)。

2019年ACM SIGPLAN编程语言原理研讨会,宣布了重大进展:一是,丰富Excel公式数据类型,不再局限于文本和数字,并允许单元格包含流记录,包括链接到外部数据实体。二是,动态数组允许普通公式计算溢出到相邻单元格。

2020年12月,推出LAMBDA机制,允许用Excel的公式语言编写新函数,这些新定义的函数可以调用其他LAMBDA定义的函数,任意深度,甚至递归。

这波操作,不得不说,微软的走位很风骚啊!

3、大家都知道,在OOP(面向对象)之后,又炒过一段时间函数式编程,很多人推崇备至。在函数式编程中呢,LAMBDA本身就是一种高度表达的编程结构,一个LAMBDA可以是另一个 LAMBDA或其结果的参数,完全可以进行柯里化。

有了LAMBDA,Excel公式不仅图灵完备了,可以胜任任何计算问题。关键是,还特么成了函数式编程的典范。如果各位看官觉着,函数式编程的概念很复杂,那么来看看Excel公式吧,也就是公式嵌套而已,大家都熟的,你们懂的!。

从今往后,又多了一门编程语言,它叫公式语言。每天将有数百万开发人员使用Excel,欢乐地解决着各种计算问题[捂脸]。

4、如果觉得抽象空洞,那就来参观下官网的示例吧:

4.1、计算直角三角形的斜边长度,可以是这样=LAMBDA(X,Y,SQRT(X*X+Y*Y)),也可以是这样=LAMBDA(X,Y,LET(XS,X*X,YS,Y*Y,SQRT(XS+YS)))。该函数采用名为X和Y的两个参数,将X*X的值绑定到名称XS,将Y*Y的值绑定到YS,并返回SQRT( XS+YS)作为其结果。

4.2、递归反转字符串,这在以前超出了Excel内置公式,只能使用VB/VBA或JavaScript在公式语言之外编写。但现在不必了,下例中将REVERSE定义为递归LAMBDA,它利用几个辅助函数(HEAD和TAIL)分别计算第一个字符和除第一个字符以外的所有字符。

4.3、定义阶乘函数。在以往的传统公式中,名称具有非常广阔的应用场景,在使用传统宏,数据有效性(下拉选项),条件格式等领域,都有着名称的身影。在LAMBDA中,名称在简化表达和精简逻辑上仍然具有强大的用途。比如一个复杂的LAMBDA,往往具有繁琐的嵌套细节,如果使用名称来代替,就会清爽很多。上例1中的公式,用名称定义为aa,则可以用aa(x,y)来调用该公式,这样就无需在使用LAMBDA公式时重复整个公式。

即使不依赖递归定义的名称,公式语言也是图灵完备的,因为我们可以使用经典的按值调用对递归函数定义进行编码。

Excel公式真成为一门编程语言了,各位如何看?

[心]欢迎关注BtOfficer[心](收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入! #公式##公式语言##编程语言#

本文内容仅供健康科普参考,不能替代专业医疗诊断和治疗建议。如有身体不适,请及时就医并遵从医师指导。

相关阅读