自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(171)
  • 收藏
  • 关注

原创 2024年9月,程序员的焦虑!

这个行业还会有很多很多的组成部分,比如大数据搜集、大数据的获取,及大模型的应用,其中获取大数据的阶段就可以涉及到很多的硬件和各种各样的软件,其中硬件比如视频输入设备,比如其它传感器等等,软件则会涉及到一些嵌入式,然后,大模型的应用也可能会涉及到硬件和软件,比如通过嵌入式来控制人工智能的终端,比如使用大模型的。最近刷短视频,看到了很多同行发表的作品,大概说的就是程序员内卷得厉害,比如某一种计算机语言,虽然企业用的多,但是人才市场上也呈现出了过饱和的状态,更令人焦虑的是,还有一堆堆的该领域的程序员被培训出来!

2024-09-24 07:34:39 350

原创 编程的未来,及未来的编程

不过,如果没有项目的经验而直接使用大模型的话,可能会遇到一些麻烦,很麻烦的麻烦,比如大语言模型可能给出错误的代码,或者说是有bug的代码,而你又不知道(原理)!”的一种方式,即跟人工智能对话,通过人的指令让人工智能“产生”对应的技能,而且未来的人工智能应该是被“锁”着的,只有通过有权限的人的指令才能进行对应技能的“程序升级”。当下的这种每个计算机的终端或手机的终端都可以跟大语言模型交互的程度),比如影响到人们的工作、娱乐,及生活的方方面面,结合上面的那些“谬论”,编程的未来可能更注重的是“

2024-09-22 09:12:14 421

原创 码农程序员:当我们的烦恼中不再有理想和爱情!

阅读这首诗的时候(如果这的确是诗的话),建议放慢节奏,不要太快,因为个人觉得任何诗只用“眼睛”阅读的话,诗意都会荡然无存或大打折扣。然后,在放慢节奏的同时,心里默念,或者说是让心里有个声音,这样会更有感觉一些。如果你觉得诗的下面这些内容可以省略,那确实也是对的,但是因为这是原创,需要足够的篇幅来声明原创。鄙人在写这首诗的时候,正准备用Golang来构建一个高并发的IM即时通讯的项目。可能就是在思考的某一个瞬间吧,也可能是因为昨夜的梦境不由地勾勒起了回忆,然后想起了心中的白月光,因此有感而发。

2024-09-20 09:14:55 132

原创 vue3嵌套路由无法显示子路由组件的解决方法

vue3前端开发中,在使用嵌套路由来设计二级目录或多级目录后,使用RouterLink标签和RouterView标签来渲染时显示的有可能是上一级的目录指向的vue组件,而无法显示子路由指向的组件的内容,这是为什么呢?,vue3中,一个级别的路由理论上通常对应的是一个RouterView,如果是多个的话,就应该对应多个RouterView嵌套。如果是二级目录,那么就在一级目录下的RouterView标签中再嵌套一个RouterView标签。:内容仅供参考,不保证正确性。

2024-09-12 09:05:10 418

原创 Vue3如何查看项目是否安装了vue-router路由依赖,及安装方法

找到文件中的"dependencies",查看其中是否有对应的vue-router的版本,如果没有,则说明vue项目创建过程中并没有安装对应的依赖;如果当前的vue3项目是基于vite构建工具创建的,那么在创建的过程中会询问是否需要安装一些依赖,一般情况下可以根据项目的需求自定义安装。安装完成之后,package.json中的dependencies中会自动加上vue-router及其版本。找到项目目录中的package.json文件;:内容仅供参考,不保证正确性。

2024-09-11 10:40:25 410

原创 Go gin使用命令安装失败原因,及解决方法

明明使用的是golang中的web框架gin文档中的命令来安装gin的,而且是直接复制的,可是为什么会安装失败,并且会提示go: go.mod file not found in current directory or any parent directory.因为go.mod文件是 Go 模块的基础,用于记录项目的依赖关系和其他元数据。成功的话,当前的工作目录中会多出一个go.mod的文件。之后,再次输入上面提到的的安装gin的命令。安装好之后,当前的工作目录就会多出一个go.sum的文件。

2024-09-09 09:36:47 637

原创 VSCode手动创建SpringBoot项目的方法,及详细步骤

点击用户变量中的“Path”,点击“编辑”按钮,在弹出的对话框中,点击“新建”,同样使用浏览目录的方式,指向解压包中的bin路径;点击“用户变量”的“新建”按钮,变量名可以填“MAVEN”,变量值可以通过浏览目录的方式,输入之前解压的包所在的路径;在“命令面板”下来的选项中选择:Spring Initializr : Create a Maven Project;指定项目所使用的Java的版本,比如:21,这个应该跟计算机上安装的Java的版本一致。在打开的“系统属性”窗口中,点击“环境变量”;

2024-08-30 09:59:16 903

原创 C语言注释的作用,规范编程为什么要善于写注释,经验之谈

如果放下当前项目,并将精力投入到另一个项目之中后,尤其是换了另一种语言,比如从Python跳到C语言,那么过一段时间之后(哪怕是个把月),再回来维护之前的Python项目的代码,比如简化提高性能,或者是版本迭代,需要增添新的功能,那么重新阅读这些代码,特别是阅读经过了多重封装了的代码,那么在。鄙人在刚从事项目开发的时候,也是比较懒的,很少给代码写注释,如果注意力是一直在这个项目之中的话,那还好,代码阅读起来不算费劲,即便将函数、类等封装代码的标识符命名的乱七八糟!:内容仅供参考,不保证正确性!

2024-08-21 09:01:03 438

原创 C++标识符是什么,如何认知更有助于理解

首先,“标识”一词用于修饰“符”,也就是说,标识符追根究底就是一种计算机语言的符号,其主要作用就是用于“标识”,而既然是用于“标识”,而自然就是用于“区分”,比如区分不同的变量、继而区分不同变量的作用,C++的标识符不仅可以用于普通类型变量的命名,即对普通类型的变量进行标识,也可以用于对函数、类、结构体、命名空间、指针等进行标识、进行区分。个人认为,除了计算机之外,最主要的应该就是为程序员而进行区分的,目的就是为了增强C++程序的可读性、可编程性,而这些标识符又是“为谁”而进行标识区分的呢?

2024-08-20 08:58:40 287

原创 不会编程,直接用AI写项目靠谱吗?

这个过程,可能就要抽象化为通过摄像头自身携带的嵌入式程序来捕捉画面,然后将画面传递给泛化能力出色的AI大模型进行判断,在根据大模型的判断(给出的预测或分类的数据)修正汽车的驾驶方向,或停下等待红灯,除此之外,这个过程可能还要涉及到路况数据和驾驶数据的本地保存和云端存储等等。如此,如果“绝对”相信AI给出的代码,如果有一定编程基础和经验的,就有可能就会反复问AI给出的代码为什么不能运行,这就好比在庞大的程序项目中找某一个在语法上并没有错误的bug一样!当然,不是说AI写的代码全是错的!

2024-08-19 08:42:33 367

原创 C语言hello world代码分步骤怎么写更有助于理解C程序

C语言中的hello world,与其它大多数的计算机语言一样,一般是将“hello world”字符输出到标准输出流,比如终端。

2024-08-17 09:01:57 371

原创 CSS3子元素设置100%为什么没有效果

web前端开发中,如果要将html文档中的子元素的某一属性值,比如将高度通过height:100%的CSS样式的方法设置得与父元素的高度相同,这通常是设计响应式web页面的好方法,可是。父元素的高度:html文档中,一个元素可能是另一个元素的子元素的子元素,而通过100%设置的属性值通常是继承直接父元素的,因此一般需要进行逐级继承。父元素的高度(或未显式地设置好最高父元素的高度):这种显式地设置高度的方法一般是设置具体的高度,比如使用px为单位;当然,具体的问题还需要具体的分析。

2024-08-16 11:28:54 439

原创 bootstrap5引入jquery,为何下拉菜单dropdowns还是无效果

先前的一些bootstrap.js的版本中,比如3的版本中,如果要在web网页之中实现下拉菜单dropdowns组件的下拉效果,那么通常的做法是引入jquery.js这一JavaScript的框架,而且在html中必须写在bootstrap.js的前面。引入bootstrap5框架中自带的bootstrap.bundle.js(或bootstrap.bundle.min.js),通常情况下,下载的文件解压之后在js的文件夹之中;如果使用bootstrap5来实现下拉菜单的下拉效果,那么html问昂中应该。

2024-08-15 19:21:30 250

原创 C语言 为什么不建议在头文件中定义函数

在介绍自定义头文件的章节的时候,编写了一个在头文件中定义函数的实例,通过编译后,程序能够正常运行,但是实际上,这是不建议的。因为头文件中一般只会用来声明函数的原型,而不进行定义,否则当头文件在预处理阶段被多次展开后,即便设置了条件编译来防止重复编译的措施,但是函数还是会被多重定义,导致编译不能完成(这应该不会导致多次编译,因为多重定义后,程序会编译失败)。为什么呢?我们可以先来测试以下。

2024-04-18 07:53:05 461

原创 C++ 动态内存分配堆空间不足可采用的两种程序设计方法

C++中,使用new运算符可以在堆(内存区域)中动态地分配内存,可是当堆中的内存不足够匹配new运算符分配的空间的时候,(据文档介绍时C++11之后)动态分配内存无法完成,C++的编译器会抛出std::bad_alloc的异常(以前的版本可能不会抛出异常,但会返回一个指向NULL或nullptr的指针)。下面将通过实例来逐一进行介绍。提示:使用std::bad_alloc需要include 。:内容仅供参考,不保证正确性。

2024-04-11 08:11:26 503

原创 C/C++ 自定义头文件,及头文件结构详解

自定义头文件,是的,相当于自己“造轮子”,在实际的项目开发中比较有可能会用到,这对于提高开发效率很有帮助。下面就介绍一下自定义头文件的步骤:第一,在C源文件的同一目录下(现阶段暂且就放在同一目录下吧),创建一个".h"后缀名的文件,文件名自定义,比如test.h;第二,添加条件编译的预处理指令:一般为#ifndef#define和#endif,用于防止重复编译;第三,在#define和#endif之间,添加需要的声明和定义;如下实例代码,简单地创建了一个头文件,并定义了一个简单的函数(

2024-04-10 07:58:41 1978

原创 C++ 栈和堆的作用机制,及特点区别

在介绍C++中的十分重要的动态内存管理机制之前,有必要先单独来介绍一下C++中的两个概念,分别是栈和堆。首先,应当明确的一点是栈和堆都是C++中用于存储数据的内存区域。

2024-04-07 07:22:02 207

原创 C语言两个数相除怎么得到浮点数

实例代码中,int除以int,即x除以y,并使用%f,得到的却是0.000000;int除以float,即x除以z,却使用%d,得到的却是0;有时候,使用C语言的相除运算符计算两个变量相除运算结果,可是却无法保留小数,比如3/2,打印输出是1,而不是1.5之类有小数的值。如上实例中的3/2,两个变量均为int或其它整型,相除得到的运算结果也为整型,要得到浮点数,可以将其中一个变量转换为浮点型;C语言中pirntf()函数打印输出浮点数使用的是%f占位符,而不是 %d;免责声明:内容仅供参考,不保证正确性。

2024-03-21 07:43:48 792

原创 C++ 命名空间的定义,及使用

code_block;

2024-03-20 07:56:36 311

原创 C++ cin标准输入流,及获取多个输入的方法

cin语句中,如果使用多个流提取运算符>>,便可以获取多个输入。使用cin获取到的输入值一般需要声明一个对应的类型变量来存储该输入值,比如如果需要一个double类型的输入值,那么就需要声明一个double的变量来存储。提示:cin是std命名空间中的标准输入流对象,使用之前一般需要声明using namespace std;而且std::通常可以省略。在C++中,cin与流提取运算符>>配合使用,可以用于获取标准的输入,比如从键盘上获取输入。cin是C++标准库标准库iostream中的一个类实例。

2024-03-19 09:12:55 548

原创 C++ 接口的实现,及作用通俗理解方式

想象一下,如果某个C++的项目中已经声明好了很多很有用的接口,那么很多程序就可以使用接口即插即用,就比如计算机上的很多接口(这里单单举一个USB的接口作为例子),当我们需要使用鼠标的时候,可以通过将鼠标连接到USB接口即可,如果需要外接的音响,也可以通过USB接口来连接,这同一个接口却实现了不同的功能,因为鼠标和音响的实现的功能不同——就好比派生类对基类的方法(成员函数)的定义不同,因此实现的功能不同。C++的接口通常是使用抽象类来实现的,而什么是抽象类呢?抽象类一般指的是包含一个或多个纯虚函数的类。

2024-03-18 07:53:20 1038

原创 C++ 纯虚函数定义语法,及作用

因为抽象类(包含纯虚函数的类)无法被实例化,因此上面的代码编译的时候,C++的编译器会抛出:error: cannot declare variable 'banana' to be of abstract type 'Fruit'。在前面的章节中介绍C++的动态多态机制的时候,有介绍过虚函数,因为虚函数正是C++动态多态的组成部分之一(一般为成员函数)。C++接口的实现:如果一个类包含一个或多个纯虚函数,那么这个类就被称为抽象类,而C++的接口则通过抽象类来实现;免责声明:内容仅供参考,不保证正确性。

2024-03-15 10:28:54 408

原创 C++ 数据封装的方法,重点是其编程思想

通过数据封装,即将数据和操作数据的函数绑定(封装)在一个类之中,可以产生一种“局部空间”的作用,类似于局部变量,如此各个空间,即各个类就有了各自的“屏障”,可以使变量之间是互不打扰、互不污染的(安全性),然后各司其职,完成程序的工作。除此之外,值得一提的是,C++中类的成员在默认情况下(即不指定访问修饰符的情况)都是私有成员,即只能被类中的成员访问,而不能被类外部直接访问,这也是一种保护机制,就像上面所提到的“屏障”。在C++中,数据封装一般指的是将数据和操作这些数据的函数绑定在一起的程序设计方式。

2024-03-13 08:11:21 470

原创 C++ 数据抽象的设计原理和作用,结合游戏逻辑实例一目了然

如下关于C++的数据抽象的内容中的大部分是经过自己的思考后总结的,不一定是正确的,仅供参考!

2024-03-12 10:16:23 309

原创 jQuery :only-of-type选择器实例详解

如上实例,运行之后,只有第一个div中的p元素和span元素被选择,而第二个div中的两个p元素都不会被选择。这是因为,:only-of-type选择器只会匹配class为e的元素的父元素中类属性为e且元素类型也是唯一的子元素,比如第一个div中p子元素是唯一的,span也是唯一的,而第二个div中class为e的p元素有两个。即:only-of-type选择器匹配选择的子元素必须是与selector选择器类型相同(比如类属性)且元素类型唯一的子元素!:内容仅供参考,不保证正确性!

2024-01-19 08:19:03 429

原创 Python函数实现封装猜字谜游戏

还记得我们在python的while循环的那一节当中开发了一个简单的猜字游戏实例吗?在示例解析当中,我们提到了游戏代码中有一个bug,不知道大家尝试修复了没有,现在鄙人就将修复完的代码发布到这里:示例解析上面代码修复的bug是,当我们输入的值超过start, end这个区间的时候,程序就会终止,修改之后就不会了。现在,我们要将这个游戏进行封装成一个函数,好可以重复使用。我们将猜字游戏封装成一个没有返回值的函数,没有返回值的函数的调用方法如下:如果我们像继续玩这个猜字游戏,可以直接调用gues

2024-01-18 07:51:07 522

原创 C++ sizeof()运算符的参数为指针和数组的值为什么不同

C++或C语言中,都可以使用sizeof()函数来计算数组的字节大小,除此之外,在C++和C语言中,都可以使用一个指向数组第一个元素的内存地址的指针来引用数组,因此,如果要计算数组的字节大小,或长度,传递数组本身或传递指向数组的指针给sizeof()函数似乎都是可以的,实际上则不然,二者有本质上的区别。这主要是因为当sizeof()函数的参数是数组本身,将计算的是数组的大小,而如果传递的是指针作为参数,那计算的便是指针的大小,而不是整个数组的。如上代码,编译运行之后,输出的n和m的值是不同的!

2024-01-17 08:01:15 555

原创 多角度俯瞰Python函数及作用

我们应该都学过三角函数吧,比如正弦函数,在最初接触到这方面的知识的时候,我们要求sin30°是不是要去查一个叫做“三角函数值查表”的东西,然后得出sin30° = 0.5。那么问题来了,sin30°为什么会等于0.5呢?也就是说30°遇到正弦函数sin中为什么会变成0.5呢?

2024-01-16 07:56:19 397

原创 Python while循环实现猜字谜游戏

python的while更多地应用于程序的一般性循环,而不是遍历迭代对象。与其他的计算机编程语言不同,python没有do...while这样的while循环。接下来,我们将详细介绍一下Python的while循环,并用寥寥数行代码开发一个小游戏,作为实例。

2024-01-15 07:33:03 1345

原创 vscode运行Python的两种方法,及无法运行的原因

下面介绍的vscode运行Python代码的方法基于的一个前提条件是:当前的计算机已经安装好了Python,且已经配置好了相关的环境变量。:filepath.py指的是指向所要运行的python文件的路径,比如D:\python\test.py,可以是相对的路径,也可以是绝对路径,一般情况下,在VSCode中的终端,可以通过cd的命令进入python文件所在的目录当作当前的工作目录,然后直接使用文件名即可,比如:python test.py。:内容仅供参考,不保证正确性!

2024-01-12 08:08:13 4789 2

原创 vscode怎么运行程序代码的两种方法

这种情况,可以在VSCode中下载一个“open in browser”的插件,如此,在HTML代码的编辑区域内,点击“右键”,选择“open in default browser”即可使用当前系统中默认的浏览器打开HTML文件了。在VSCode中,后端代码的运行,可以从VSCode打开终端,然后使用命令行工具,使用命令来运行后端代码程序,比如Python的就可以使用命令:python file.py;VSCode要运行程序的代码,大致要分为两种情况而定,一种是前端的代码,另一种是后端的代码。

2024-01-11 08:04:10 8445

原创 Python元组tuple“删除”元素的两种函数代码设计

实际上,Python的tuple元组内的元素是不能被修改的,因此也是无法被删除的,但是,为了移除Python元组tuple内的某些元素,以获得一个新的元组,还是有其办法存在的。比如,我们可以使用for循环添加的方法,来创建一个不包含那些需要被移除的元素的新元组。()方法和append()方法来为一个新的元组添加不包含要被删除的元素的元素,其中,要被删除的元素可以通过函数的可变参数传递,然后分别将代码封装为一个函数,方便随时调用及代码的重复利用。下面的实例将设计两个函数,分别使用。

2024-01-10 07:56:23 584

原创 Java The method compareTo(Integer) in the type解决方法

Java编程过程中,Integer对象(或其它继承自Number类的包装类对象)使用Number包装类内置的compareTo()方法来比较调用对象和参数之间的大小的时候,Java的集成开发环境IDE或编译器给出了提示:The method compareTo(Integer) in the type Integer is not applicable for the arguments (Float),后类似的提示,这是怎么回事呢?:内容仅供参考,不保证正确性。

2024-01-09 08:24:16 397

原创 jQuery :nth-of-type(n)选择器的用法详解

jQuery中,:nth-of-type(n)选择器可以对selector选择器匹配选择到的所有HTML元素进行二次匹配选择,为了更好地阐述:nth-of-type(n)的语法,这里假设selector是一个元素p选择器,如此,:nth-of-type(n)可以用于匹配p元素选择器选择到的p元素指向的父元素中第n个类型为p的子元素,而且与p是否是该父元素的第n个子元素无关,比如父元素有3个子元素,分别是p、span和p,那么:nth-of-type(2)选择到的是第二个p元素,而不是第二个子元素。

2024-01-08 08:16:47 440

原创 Python列表批量删除所有指定元素的函数设计

使用Python删除列表中所有指定元素的方法可能有很多种,比如for循环之类的,但这里要设计一种可以直接通过函数传参的形式输入要删除的指定元素的方法,而且尽可能地让Python的代码足够简单的同时,能够重复利用,且方便重复利用,因此,这里将删除列表中所有指定元素的Python代码封装为一个函数。:内容仅供参考,不保证正确性。

2024-01-05 08:16:15 507

原创 jQuery文件下载方法及引入HTML语法

右键点击该页面,在弹出的菜单中选择另存为,在另存为的菜单中默认保存的后缀名为".js",如果不是,可以在下拉菜单中选择该类型的选项,然后保存即可下载jQuery文件了。鄙人下载的是最新版本的jquery-3.7.1.min.js。:jQuery的文件的扩展名是".js",下载完之后,无需安装,使用直接引入即可使用jQuery。:内容仅供参考,不保证正确性!

2024-01-04 07:48:16 1518

原创 Python如何将列表元素转换为一个个变量

内容仅供参考,不保证正确性!

2024-01-03 08:01:26 558

原创 Java JDK下载安装及Windows环境变量配置

提示:这网址里面有三个扩展名的文件,分别是“.zip”、“.exe”和“.msi”,鄙人选择的是.exe的文件,下方的安装和环境的配置也是安装该文件的安装程序进行的。下载后,直接双击即可安装。如果计算机的C盘存储不是很够,可以将文件的安装目录改换成其它的磁盘。:内容仅供参考,不保证正确性!

2024-01-02 07:44:24 454

原创 C语言函数传递了指针,值没有被修改的原因及解决方法

该实例输出了三个变量的内存地址,前两个是一样的,即通过*x++的运算,变量指向的内存地址并没有发生改变,但是如果是通过指针的自增运算,比如z++,则内存地址会发生改变。C语言函数中传递了指针作为参数,确切来说是传递了指向变量的内存地址作为参数,可经过函数内的修改之后,该指针指向的变量的值为什么不会被修改?这个跟运算符的优先级也没有关系,像上面这样的*x++的表达式中,并不会被优先计算x++,即不会先进行内存地址的自增运算。将*x++修改为:*x = *x + 1;:内容仅供参考,不保证正确性!

2024-01-01 08:09:30 759

原创 C语言共用体成员输出的值与赋值时的不同的原因

在使用C语言的共用体时,如果成员输出的值与之前定义共用体变量的时候所赋值的不同,那么很可能是因为定义共用体变量的时候,为共用体的多个成员赋值造成的。因为共用体虽然允许在同一个内存位置上存储不同的数据类型的变量,但是任何时候都只能有一个成员存储值,也就是说,当共用体内的某一个成员被赋值了,那么其它成员之前所赋的值就会丢失或损坏,这就是造成共用体成员输出的值与赋值时不同的原因了。分开为C语言共用体的成员赋值,即什么时候使用就什么时候赋值,确切来说,要使用一个新的共用体的成员时,就应该为其赋值。

2023-12-31 08:02:27 420

空空如也

空空如也

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

TA关注的人

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