scala_简介和安装

Scala简介与安装 文章目录 零、本讲学习目标 一、Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1、一切都是对象 2、一切都是函数 3、一切都是表达式 (四)在线运行Scala 二、选择Scala版本 三、Windows上安装Scala (一)到Scala官网下载Scala (二)安装Scala (三)配置Scala环境变量 (四)测试Scala是否安装成功 1、查看Scala版本 2、启动Scala,执行语句 一、Scala简介 (一)Scala概述 Scala是Scalable Langu 阅读详情

scala简介

scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程


早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和Kafka这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。


接下来,我们要来学习:

  • 为什么要使用scala?
  • 通过两个案例对比Java语言和scala语言



为什么使用scala

  • 开发大数据应用程序(Spark程序、Flink程序)

  • 表达能力强,一行代码抵得上Java多行,开发速度快

  • 兼容Java,可以访问庞大的Java类库,例如:操作mysql、redis、freemarker、activemq等等



scala对比Java

下面通过两个案例,分别使用java和scala实现的代码数量



案例

定义三个实体类(用户、订单、商品)

Java代码

/**
 * 用户实体类
 */
public class User {
    private String name;
    private List<Order> orders;

    public String getName() {
    	return name;
    }

    public void setName(String name) {
    	this.name = name;
    }

    public List<Order> getOrders() {
    	return orders;
    }

    public void setOrders(List<Order> orders) {
    	this.orders = orders;
    }
}
/**
 * 订单实体类
 */
public class Order {
    private int id;
    private List<Product> products;

    public int getId() {
    	return id;
    }

    public void setId(int id) {
    	this.id = id;
    }

    public List<Product> getProducts() {
    	return products;
    }

    public void setProducts(List<Product> products) {
    	this.products = products;
    }
}
/**
 * 商品实体类
 */
public class Product {
    private int id;
    private String category;

    public int getId() {
    	return id;
    }

    public void setId(int id) {
    	this.id = id;
    }

    public String getCategory() {
    	return category;
    }

    public void setCategory(String category) {
    	this.category = category;
    }
}

scala代码

case class User(var name:String, var orders:List[Order])	// 用户实体类
case class Order(var id:Int, var products:List[Product])	// 订单实体类
case class Product(var id:Int, var category:String)  		// 商品实体类


# 开发环境安装

学习如何编写scala代码之前,需要先安装scala编译器以及开发工具

Java程序编译执行流程

在这里插入图片描述

Scala程序编译执行流程

在这里插入图片描述

scala程序运行需要依赖于Java类库,必须要有Java运行环境,scala才能正确执行


根据上述流程图,要编译运行scala程序,需要

  • jdk(jvm)
  • scala编译器(scala SDK)

接下来,需要依次安装以下内容:

  • 安装JDK
  • 安装scala SDK
  • 安装IDEA插件



安装JDK

安装JDK 1.8 64位版本,并配置好环境变量



安装scala SDK

scala SDK是scala语言的编译器,要开发scala程序,必须要先安装SDK

本次安装的版本是: 2.11.12


步骤

  1. 下载、安装SDK
  2. 测试是否安装成功

具体操作

  1. 双击scala-2.11.12.msi,将scala安装在指定目录,例如:c:/opt
  2. 打开控制台,输入scala -version


安装IDEA scala插件

IDEA默认是不支持scala程序开发,所以需要来安装scala插件来支持scala语言。


步骤

  1. 下载指定版本IDEA scala插件
  2. IDEA配置scala插件
  3. 重新启动IDEA

具体操作

操作1:查看IDEA的版本号

在这里插入图片描述



操作2:到IDEA官网下载对应版本的IDEA scala插件

[!DANGER]

请务必下载IDEA版本一致的scala插件



操作3:选择配置 > 选择插件

在这里插入图片描述



操作4:点击小齿轮 > 选择从本地安装插件

在这里插入图片描述



操作5:找到下载的插件位置,点击OK

在这里插入图片描述



操作6:重新启动IDEA



操作7:查看scala插件

在这里插入图片描述



# scala解释器

后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。


我们接下来学习:

  • 启动scala解释器
  • 在scala解释器中执行scala代码
  • 退出scala解释器



启动scala解释器

要启动scala解释器,只需要以下几步:

  • 按住windows键 + r
  • 输入scala即可

在这里插入图片描述




执行scala代码

在scala的命令提示窗口中输入println("hello, world"),回车执行

在这里插入图片描述




退出解释器

在scala命令提示窗口中执行:quit,即可退出解释器



一、Scala简介与安装 Scala是Scalable Language的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。 Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上 阅读详情

相关推荐

Zemax单模光纤耦合仿真避坑指南:数值孔径、模式匹配与镀膜影响详解

本文详细解析了Zemax单模光纤耦合仿真中的关键避坑要点,包括数值孔径的多重定义与换算、模式匹配度评估及镀膜影响分析。通过实际案例和技术公式,帮助工程师避免常见仿真误差,提升激光通信和光纤传感系统的设计精度。特别针对OpticStudio用户提供了实用的参数设置建议和优化策略。

weixin_30836759的博客 462

Scala与Java:综合比较

Java和Scala都是运行在Java虚拟机(JVM)上的强大编程语言。Java多年来一直在企业领域占据主导地位,而Scala因其简洁、表达力强和函数式编程特性而逐渐受到关注。

jakelihua 996

等保2.0下可信验证的动态实现与合规实践

本文深入解读等保2.0标准中的“可信验证”要求,并重点探讨其动态实现与合规实践。文章阐述了从可信根、信任链到动态验证的核心概念,拆解了不同安全等级的实施差异,并提供了从硬件选型、软件赋能到平台集成的四步落地指南。通过行业案例与避坑心得,为构建覆盖计算环境、区域边界、通信网络和安全管理中心的全链条可信防御体系提供了实用参考。

d3e4f的博客 826

Scala与Java的区别总结

Scala与Java的区别 Scala是一种集成面向对象和函数式开发的开发语言,它运行在Java的JVM(虚拟机)上。通过编译后,编译出来的文件是一个.class文件,也就是Java的字节码文件,说明Scala与Java有很多相似之处,但一些方面又不同于Java。 注意:以下Scala与Java对比,是与Java8版本进行对比。 1. 变量 Scala定义变量时,支持自动推测类型,采...

l_jd_gululu的博客 3972

【光学仿真】基于Matlab的LG/BG/PV/HG光束生成与特性分析【附完整源码】

本文详细介绍了如何使用Matlab进行拉盖尔-高斯(LG)、贝塞尔-高斯(BG)、完美涡旋(PV)和厄米-高斯(HG)四种特殊光束的仿真与特性分析。通过提供完整的Matlab源码,手把手指导读者生成光束、分析其强度、相位、传播特性及轨道角动量,为光学研究、激光应用及教学提供了直观高效的数值实验平台。

3a9bq4r8t2y的博客 490

河洛理数【陈抟】先天命卦大运

首先我们把前文提及的天干和地支进行上下划分,那么每一年的年份都是使用一天干和一地支进行组合,即如上的甲子、癸亥,那么下一年就是天干和地支都进行顺延一位进行组合,如甲子年下一年就是乙丑年,但是由于天干是十个、地支有十二个,所以要遍历一遍的话,就正好是 60 年。1924 年 ~ 1983 年(中元) 1984 年 ~ 2043 年(下元) 2044 年 ~ 2103 年(上元)2、找到卦中第一个(从下往上,也就是初爻、二到五爻、上爻)对应时辰的阴阳爻。5、也就是所属的元堂爻。

Daniel专栏 2069

Scala和Java详细对比

Scala是什么 百度百科:Scala是一门多范式的编程语言,一种类似java的编程语言 ,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。 我的理解:Scala是java的强化版,也是基于jvm的编程语言,可以直接调用所有java的库资源,同时其具备函数式编程的特性以及脚本语言的特性,语法更加简洁,功能更加强大 相比java的优点 优雅:这是框架设计师第一个要考虑...

nntcdhl的博客 2828

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

FPGA 学习笔记:Vivado 2020.2 MicroBlaze MIG 测试 DDR3 篇四

坚韧与专注 2159

Scala 和java之间详细区别

Scala 和java之间详细区别

weixin_45428910的博客 1522

Linux7 挂载 nfs 远程目录

每天一个 DBA 小知识,助你更进一步!

LuciferLiu_DBA 1万+

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 205

Flink开发:Java vs. Scala - 代码对比分析,选择你的最佳拍档

本文通过代码对比分析了在Flink开发中选择Java或Scala的优劣。Java因其广泛的使用、成熟的生态系统和强大的IDE支持而受到青睐;而Scala则以其简洁的语法、强大的类型系统和函数式编程特性吸引开发者。文章还探讨了编译执行速度、内存管理、社区支持和第三方库等因素。最终建议,选择语言应基于项目需求、团队技能、长期维护和性能要求。无论选择Java还是Scala,都应考虑具体情境和偏好,以找到最适合的开发“拍档”。

实践是检验真理的唯一标准 2193

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

scala及sbt安装简介

1 scala及sbt安装简述 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 因为目前接触的几个比较重要的框架包括akka、kafaka以及spark都和scala有或多或少的关系,所以还是决定好好了解一下scala语法做到知己知彼。 但是说实话,初接触scala后发现,其项目构建是个比较麻烦的事情,虽然sbt这个工具也比...

6164

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度学习工具包 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")

Scala简介和安装

大数据技术之Scala 简介 & 安装 科大讯飞大数据学院 一 Scala简述 Scala (斯卡拉)是一门多范式(multi-paradigm)的编程语言。 这里所谓的范式,指的是编写程序的方式,不同的编程语言,方式也不尽相同,也就意味着Scala编程语言是融合了多种不同编程方式的语言。所以Scala语言的设计初衷是要集成面向对象编程和函数式编程的各种特性。 二Scala与Java的关系 创始人马丁...

惊鸿的博客 255

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Scala简介及环境安装

Scala简介及环境安装 ##为什么学习scala Spark 新一代内存级大数据计算框架,是大数据的重要内容 Spark 使用Scala编写,为了更好的学习Spark 需要掌握Scala语言 Spark 的兴起带动了Scala的发展 ##scala的特点 Scala是一门多范式编程语言,支持面向对象和函数的编程方式 Scala源代码会被编译成java字节码文件,然后运行在JVM上,并且可以...

zhangxm_qz的博客 612

Scala简介及安装

Scala 是一种集成了面向对象编程和函数式编程思想的静态类型编程语言,它运行在 Java 虚拟机 (JVM) 上,可以与 Java 无缝地进行交互。Scala 由瑞士洛桑联邦理工学院 (EPFL) 的 Martin Odersky 等人开发,并于2003年首次发布。Scala 的名字来自于“Scalable Language”(可伸缩语言)的缩写。Scala 的语法比较复杂,但是也更加灵活和强大。Scala 在分布式系统、大数据处理和 Web 编程等方面都有广泛的应用。

m0_59360502的博客 331

Scala简介与Scala的下载安装

scala 介绍 Scala是一种多范式的编程语言——面向对象编程、函数式编程。 Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。 特点: 1.Scala的API更优雅,用户体验好 2.Scala的语言表达能力强,一行代码抵多行Java代码,速度快 3.能融合到Hadoop生态圈 开发环境 Scala SDK 的安装 安装Scala SDK 前首先确保已安装jdk1.8+的版本(jdk安装看这里) 1.Windows下安装Scala SDK 访问Scala官网

laozaoxiaowanzi的博客 2240

scala简介和安装

一、scala概述 Scala 官网:https://www.scala-lang.org/ ps:po一张官网首页截图(为什么来这么一张呢?因为我觉得UI还挺美观的哈哈,请原谅我的直男审美) 1、什么是 Scala Scala 是一种多范式的编程语言,其设计的初衷是要集成面向 对象编程和函数式编程的各种特性。Scala 运行于 Java 平台 (Java虚拟机),并兼容现有的 Java 程序...

墨殇 242

scala简介与安装

一、简介 1、scala是啥? Scala用一种简洁的高级语言将面向对象和函数式编程结合在一起。 Scala的静态类型有助于避免复杂应用程序中的错误,其JVM和JavaScript运行时使您能够轻松访问庞大的库生态系统来构建高性能系统。 2、为啥要学scala? scala相比java语言有很多的优点 (1)简洁优雅。scala使用一行代码就能实现之前java的十几行代码的功能。代码量减少,所以简洁而且优雅。 (2)高效。他不仅开发效率高,而且是静态编译的,所以速度较快。 (3)更好的和H

wow_is_nothing的博客 310

五、Scala简介与安装

一、 (一)在线运行Scala 通过浏览器访问:Scala在线工具 二、 Windows上安装Scala (一)到Scala官网下载Scala Scala2.11.12下载网址:Scala 2.11.12 | The Scala Programming Language 单击【scala-2.11.12.msi】超链接,将scala安装程序下载到本地 (二)安装Scala 双击安装程序图标,进入安装向导,按提示进行操作,完成Scala的安装 (三)配置Scala环境变量 设置W...

weixin_55988146的博客 247
上一篇: HBase篇
下一篇: scala_变量、字符串、数据类型
Imflash
博客等级 码龄8年 66粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值