JavaScript变量命名规则

Mit6.S081-实验1-Xv6 and Unix utilities Mit6.S081-实验1-Xv6 and Unix utilities前言一、Boot xv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析 前言 一、Boot xv6 1,实验目的 利用qemu启动xv6 2,操作流程 1)切换到xv6-labs-2020代码库的lab1分支 git checkout ut 阅读详情

大家好,欢迎观看JavaScript教程(三、变量命名规则)

变量命名规则:

  1. 变量名由字母、数字、下划线、美元符$组成
    name Array name123 frank_Input $user
  2. 数字不能开头
    var 1name = 12;
  3. 不能是Js中的关键字或保留字
    var var = “你好”;
  4. 见名知意,要起有意义的名字
  5. 驼峰命名法(第二个首字母大写,其余字母小写)
    var userName = “张三”;
  6. 严格区分大小写a和A不一样,两个变量名
uniapp(全端兼容) - 详细实现唤起手机摄像头对商品进行拍照识别功能,在uniapp全平台小程序/h5网页/安卓苹果app做商品扫描识别效果,仿京东淘宝扫描识别功能效果(提供示例代码,开箱即用) uniapp,微信小程序,移动端h5网页,手机H5网站,安卓苹果app软件,拍照识图功能,vue前端实现商品拍照识别,uniapp详细实现调用手机摄像头拍照识别商品,uniapp拍照识图插件组件实例代码,uni-app实现京东淘宝拼多多点击拍照识图功能,uniapp怎么做电商app的拍照识别图片上的商品功能,uniapp仿淘宝拍照识图,uniapp仿京东拍照识图,调用后置摄像头拍照扫描图片上的物品,手机摄像头拍照并拖动一个区域进行识别,前端怎么做识别图片的交互效果,uniapp(全端兼容) - 详细实现唤起 阅读详情

相关推荐

储能逆变器动态无功补偿:从原理到算法实现

本文深入解析了储能逆变器动态无功补偿的核心原理与算法实现。通过四象限运行与解耦控制技术,储能逆变器可在充放电的同时,快速、精准地调节无功功率,有效提升电网电能质量与功率因数。文章详细阐述了从相位调节、容量限制到PI控制算法的完整技术路径,并结合工程实践,探讨了其在光伏/储能系统中的协同控制策略与进阶应用价值。

weixin_29216353的博客 209

JS中的变量

本章主要介绍了JS中变量的定义、使用方法和一些命名的规则,希望对你有所帮助。

qq_53977993的博客 1246

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3461

JavaScript变量命名规则规范

变量命名的规则: 一、必须遵守: 变量名可以由数字、字母、下划线、$组成,但是 不能以数字开头 区分大小写(大写的变量和小写的变量是不同的变量) 变量名不能是关键字或者保留字: 以上词汇不能用作变量名,不用刻意记忆,变量名命名错误时,会有错误提示,换一个即可。 二、建议遵守(不遵守一看就不专业) 变量名需要有意义,即语义化,增强代码可读性,比如存储年龄用age,姓名用name,防止过段时间...

前端小白菜的菜园子 1186

手把手教你用STM32驱动SPL06-001气压传感器(附完整代码与避坑指南)

本文详细介绍了如何使用STM32驱动SPL06-001气压传感器,包括硬件连接、寄存器配置、驱动层实现和数据补偿算法。通过完整的代码示例和避坑指南,帮助开发者快速掌握SPL06传感器的应用技巧,提升嵌入式系统开发效率。

weixin_42552315的博客 295

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

萌新常用的都在这了,本萌新的模板集。

张天枭の博客 5万+

JS 变量

一、JavaScript 1、定义:JavaScript是运行在客户端(浏览器)的编程语言 2、组成:ECMAScript、Web APIs (DOM、BOM) 3、书写位置:内部、外部、内嵌 4、核心语法:变量、注释、语法约定、数据类型、运算符号、数组、控制语句 二、变量 变量是指存储数据的容器,并不是数据本身。 (一)变量的基本使用 1、声明变量和赋值 var 变量名=赋值 (1)先声明变量再赋值 (2)同时声明变量和赋值 (3)为多个变量名赋值的时,以逗号隔开,只.

webshady的博客 883

MATLAB实战:手把手教你用三频四步相移法搞定结构光三维重建(附完整代码)

本文详细介绍了如何使用MATLAB实现三频四步相移法进行高精度结构光三维重建。通过光栅图像预处理、相位计算、多频外差与相位解包裹等步骤,结合完整代码示例,帮助读者掌握从二维图像到三维点云的关键技术。该方法在工业检测和逆向工程中具有抗干扰能力强、高分辨率和鲁棒性等优势。

weixin_29201933的博客 340

JavaScript变量声明、命名规则和使用

取一个变量值:变量取值时,一定是取的最后一次存的值,如果变量不存在 就报错,程序停止再那一行代码。给一个变量赋值这行代码运行以后:如果这个变量不存在 就会隐式声明这个变量 然后再赋值。在JavaScript,对于一个变量的声明,我们通过 var 关键字实现。= :是一种运算的符号,同+ - * /,把右边的值赋值给左边的变量名。如果先使用变量再声明变:使用的只是声明的变量名 值要等代码运行后才赋。变量就是保存数据的一种标记,不仅可以是数字,还可以是任意数据类型。对于变量名字的命名,我们应当遵守以下规则。

retager的博客 288

半导体制造技术导论(第二版)萧宏 第五章集成电路加热工艺答案

第二次退火是在较高温度下进行,并将电阻系数较高的c49碳化硅转变为电阻系数较低的c54碳。水平式高温炉加热、垂直式高温炉加热(即传统的管式炉加热)、快速加热工艺RTP、激光镭射。8. 集成电路芯片制造过程中,会使用垫底氧化层、阻挡氧化层、栅氧氧化层、屏蔽氧化层和全。氧化是最重要的加热过程之一,是一种添加工艺,将氧气加入到硅晶圆后,在晶圆表面形成二氧。为了满足元器件性能的要求,必须利用退火工艺将晶格的损伤修复,使其恢复单晶结构并激活掺。工艺氮气气流下将晶舟推入炉管,升高温度,稳定温度;

goal_achieving的博客 1879

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 418

如何在给js起变量名时,拼接变量?

需求 最近在传参时,需要给成吨的变量起名,例如:tree_1, tree_2, tree_3,甚至是这种:testList[0].id,testList[0].name,testList[1].id,testList[1].name… 问题 本想着在循环中拼接字符串与变量 i // 错误示范 错误示范 错误示范 for(let i = 0;i < 20, i++;){ let 'tree_...

团长的博客 1万+

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1566

javascript变量命名规则,js函数名的命名规则

首先我们先来了解一下JavaScript的前身,JavaScript的创造者是布兰登·艾克(Brendan Eich)就职于网景(Netscape)公司,仅用了10天就创造了这门语言(大佬的世界我不懂)。JavaScript原本名为LiveScript,在1995年2月发布时为了蹭一波Java的热度便改名为JavaScript。在JavaScript 1.0获得巨大成功后,蹭热度二号选手微软来了,在internet Explorer 3中加入了名为JScript。

神经网络爱好者 118

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

javascript的简单总结 书写位置 JS的注释 JS的变量 变量的命名规则和命名规范

jS的三大组成部分 ECMAScript JS的语法:提供核心的语言功能 **BOM(Browser Object Model)**一套操作浏览器的属性和方法:提供访问和操作网页的方法和接口 **DOM(Document Object Model)**一套操作文档的属性和方法:提供与浏览器的交互方法和内容 JS的三个书写位置 行内式 a 标签 直接写在 href 属性上要有一个 javascript:; <a href='javascript: alert("hello world") ;'>点

weixin_46688757的博客 312

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[C1进阶之路-JS基础] JavaScript变量命名规则

;某位大牛曾说:计算机科学领域有两个难题:一个是缓存失效,另一个就是命名。这里说到的命名不仅是要符合语法层面的规则,还要符合工程层面的规范。如果变量的命名不符合语法层面的规则,那么程序就会报错;如果变量的命名不符合工程规范,将会影响项目的开发与后续的维护。

Nick 的笔记 1887

javascript变量的声明以及命名规则

javascript变量的声明以及命名规则 一、变量的声明(三种方式) 变量使用前需要先声明; 声明变量的关键字是:var; 语法:var 变量名 = 变量值; 先声明,再赋值 var a; //变量的声明 a = 10; //变量的赋值 同时声明和赋值 var a = 10; //变量的声明和赋值 同时声明多个变量并赋值(注意:当声明多个变量和赋值时,变量之间用逗号隔开) var a = 10, b = 20; //多个变量的声明和赋值 不声明,直接赋值(注意:这个是不规范的写法!) a

weixin_52385353的博客 1488

JavaScript变量的命名规则(必须遵守的语法规则)

JavaScript命名规范要点:1.语法规则:变量名由字母、数字、$或_组成,首字符不能是数字,区分大小写,禁用保留字;2.最佳实践:采用驼峰命名法(变量小驼峰,类大驼峰),常量全大写加下划线,布尔值加is/has/can前缀;3.特殊场景:DOM元素加类型前缀,jQuery对象加$符号,异步函数加Async后缀;4.避免单字符和无意义命名,提倡描述性命名。建议使用ESLint等工具检查命名规范,团队统一标准以提升代码质量和可维护性。

qq_44136882的博客 1192

JavaScript变量的命名规则和命名规范

变量的命名规则和命名规范 1. 规则: 你必须遵守, 不然报错 1-1. 一个变量只能由 数字(0-9), 字母(a-zA-Z), 美元符($), 划线下(_) 组成 1-2. 一个变量不能由 数字 开头 1-3. 再 JS 中严格区分大小写 => num Num NUm NUM 这是四个变量 1-4. 不能使用关键字或者保留字 => 关键字: 现在 JS 语法正在使用的关键字(var) =&

weixin_51175605的博客 710

JS变量的概念以及命名规则,规范

变量的概念及基本运算 变量: 内存中的数据存储空间,该空间中保存的数据可以随着运算的进行发生改变 变量三要素: 变量名 变量值 数据类型 变量的特点: JS是弱(动态)类型的语言,不关心变量创建时的数据类型,是在运行时才能确定变量的数据类型。 JS变量的命名规则: 能够包含的字符:字母、数字、 _ 、 $ 不能以数字开头 不能是关键字或保留字(关于JS的关键字和保留字介绍请看:JavaScr...

吴小迪的博客 3万+

JavaScript变量:命名规则 声明方式 变量类型 变量作用域

JS变量 命名规则 声明方式 变量类型 变量作用域

Tech in Pieces 342

javascript变量命名规则

javascript变量命名规则: 以字母、下划线、$开头; 区分大小写; 由字母、下划线、$或数字组成; 不能使用关键字和保留字

Daisy 7999

Javascript--变量命名规则

变量名称如果是多个单词组成,第一个单词的首字母小写,后面单词的首字母大写。在 JS 中,定义变量的语法为:let|const|var 变量名称 = 值,也可先声明变量,然后再给这个变量赋值。方法名称如果是一个单词都小写,如果是多个单词则第一单词的首字母小写,后面单词的首字母大写(规范)// country = '美国' // 当声明了常量,它的值不能再改变。// let var = 'hehe' // 关键字不能作为变量名称。之所以要使用变量,是为了更好来控制我们的程序,也更好来维护我们的程序。

m0_72210904的博客 1131

JavaScript中变量的本质与命名规则

变量在JavaScript中是非常核心的概念,它们是存储和操作数据的容器。理解变量的本质,掌握不同声明方式的区别,遵循命名规则和最佳实践,不仅有助于提升编程效率,还能提高代码的可读性和维护性。在JavaScript编程中,变量是最基本的概念之一,它们是用于存储数据的“容器”。它有函数作用域(function scope),意味着如果在函数内部声明变量,该变量只在函数内有效。:使用驼峰命名法(camelCase)是JavaScript中常见的命名风格,尤其适用于变量和函数名。中,表示某个人的名字。

m0_62599305的博客 785

JS变量命名规则和规范

JS变量命名规则和规范 声明变量:var 当创建一个变量时会在内存中的栈区开辟一个新的空间 变量命名规则和规范: 规则: 1.由字母、数字、下划线、$符号组成,不能以数字开头 2.不能是关键字和保留字,例如:for,while,this,name 3.区分大小写 规范: 1.变量名必须有意义 2.遵守驼峰命名法 3.建议不要用$作为变量名 ...

羊驼可以吃吗的博客 3029

JS的常量、变量及命名规则

定义变量: var / let 变量名 = 变量值a.若只是声明了变量,并未对其赋值,则其默认为 undefined;b.在 JavaScript 中的变量必须要先定义后再使用,没有定义过的变量不能直接使用;

qq_43547725的博客 696

JavaScript基础知识—变量和常量命名规则

2.2   JavaScript基础知识—变量和常量 JavaScript作为一种计算机语言,具有计算机语言的7个要素:输入、输出、操作、数据、分支、循环和子程序。数据是一切程序的基础构成。JavaScript中,数据有变量和常量两种形式。 JavaScript常量又称字面常量,是固化在程序代码中的信息。变量的主要作用是存取数据,为使用者提供一个存取信息的容器。对于变量,必须理解变量的命名、类

bin1220的专栏 889
上一篇: JavaScript名词解释
下一篇: JavaScript中6种数据类型
误念
博客等级 码龄7年 15粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值