Scala_入门笔记

深度理解嵌入(embedding)层 首先从one_hot开始: one_hot的优点:计算方便快捷、表达能力强。 one_hot的缺点:过于稀疏,过于占用资源,尤其是在数据量特别大时;数据之间完全独立。 阅读详情

1.来历
洛桑联邦理工学院(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。Funnel是把函数式编程思想和Petri网相结合的一种编程语言。Odersky先前的工作是Generic Java和javac(Sun Java编译器)。 Odersky教授创建Scala语言的一个主要原因是不满Java语言相对复杂的语法。因此,他设计的Scala的代码质量远远高于Java。
Scala将面向对象和函数式编程融合在一个静态类型语言中,其目标是组件或组件体系的开发。目的:设计出比Java更好的语言。

2.Scala基本语法和约定

区分大小写
类名单词首字母大写
方法名首单词首字母小写,其余单词首字母大写
程序文件名称与对象名一致
def main(args:Array[String])程序入口

可以看出和Java区别不是很大。

3.标识符


字母数字标识符:跟其他语言类似,由字母、数字和下划线组成,但需注意“$”字符被保留作为scala编译器产生的标识符之用。

操作符标识符:由一个或多个操作符字符组成。scala编译器将在内部“粉碎”操作符标识符以转换成合法的内嵌“$”的java标识符。运算符字符是可打印的ASCII字符,如:+,:,?,~或#。例如,标识符:->将被内部表示为$colon$minus$greater

混合标识符:由字母数字以及后面跟着的下划线和一个操作符标识符组成。如unary_+定义了一个前缀操作符“+”。

字面量标识符:是用反引号`…`包含的任意字符串,scala将把被包含的字符串作为标识符,即使被包含字符串是scala的关键字。例如:可以使用Thread.`yield`()来访问java中的方法,即使yield是scala的关键字。

4.数据类型

数值类型
Scala的基本数据类型与Java中的基本数据类型是一一对应的。
7种数值类型:Byte、Char、Short、Int、Long、Float和Double
2种非数值类型:Boolean和Unit(只有一个值“()”,相当于java和c++中的void,即空值)
以上所有数据类型都是对象。Scala中没有类似Java中那样的原始类型。这意味着可以调用Int,Long等方法。
字符串类型
scala沿用了java.lang包中的String。在scala中常量也称作字面量,字符串字面量由双引号包含的字符组成,同时scala提供了另一种定义字符串常量的语法:原始字符串,它以三个双引号作为开始和结束,字符串内部可以包含无论何种任意字符。

val:声明不可变的变量,一旦初始化就不能再被赋值
var:声明可变的变量,可以在它的生命周期中被多次赋值
推荐使用val,如下:

val content: String = "hello world“
val content2: String = new String(“hello world”)

5.运算符

::运算符(两个冒号)表示普通元素与List的连接操作
:::运算符(三个冒号)表示List的连接操作
<- 运算符,也叫做generator。主要用于for循环中,用于遍历集合对象。
=> 含义比较多,用法最复杂

1、val triple = (x: Int) => 3 * x---定义函数
2、switch的模式匹配

6.程序控制结构-分支循环

if{}
if {
}else{
}
 if{
 }else if{
 }else{
 }

打印1到10

for(i <- 1 to 10){
    println(i)
}

匹配表达式即(Switch-Case)

scala中做比较用的样本(case)可以是任何类型的常量或变量,但是java只能是byte、short、char和int这4种之一的常数或常量,不能是变量;
在每个case语句最后,不需要break,break是隐含的;
match表达式也能产生值;
如果没有匹配的模式,则MatchError异常会被抛出。

val str = "apple"
val friend = str match{
    case "salt" => "pepper"
    case "apple" => "pen"
    case _=> "huh?"
}

7.数组
1.声明定义

var z:Array[String] = new Array[String](3)   
var z = new Array[String](3)
var z = Array("Maxsu", "Nancy", "Alen")

2.数组的遍历

var myList = Array(1.9, 2.9, 3.4, 3.5)   
for ( x <- myList ){
     println(x) 
}
var total = 0.0; 
for ( i <- 0 to (myList.length - 1)) { 
    total += myList(i); 
} 
println("Total is " + total);

3.数组常用方法

1.sum求和(数组必须是数值型数据)
println(array.sum)
2.min max 输出数组中最小和最大元素
println(array.min)
println(array.max)
3.使用sorted方法对数组或数组缓冲进行升序排序,这个过程不会修改原始数组
val sortArr = array.sorted
4.使用比较函数sortWith进行排序
val sortArr = ab.sortWith(>)
5.数组显示
println(sortArr.mkString(“|”))
println(sortArr.mkString(“startFlag”,”|”,”endFlag”))
6.使用concat()方法连接两个数组
var myList3 = concat( myList1, myList2)
7.使用range()方法来生成包含给定范围内增加整数序列的数组
var myList2 = range(10,20) //创建一个数组,其元素介于10和20之间,范围步差为1
8.复制一个数组到另一个数组上
def copy( src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int ): Unit
9.返回数组,长度为第一个参数指定,同时每个元素使用第二个参数进行填充。
def fill[T]( n: Int )(elem: => T): Array[T]

2. Android_逆向的历史与发展 学完本节,希望你能够:了解 Android 逆向工程的发展历程,从早期 APK 破解到现代应用保护;入门先把这几类「在干啥」搞清楚,后面学脱壳、反反调试会顺很多。(反编译 APK 得到的类汇编代码,相当于程序的「菜谱」)就能绕过验证,到后来混淆、加固、反调试一起上,逆向难度越来越高。(第三节 什么是 CPU 指令集),帮你搞清楚「反汇编看到的那些指令」是从哪来的、和 Android 逆向有啥关系。有必要——先搞清「没加固时怎么玩」,再学脱壳和对抗,思路才顺。读起来费劲,但逻辑还在,耐心一点还能跟。 阅读详情

相关推荐

ADS2020实战:村田电感.s2p与.mod文件导入全流程对比(附仿真结果差异分析)

本文详细对比了ADS2020中村田电感的.s2p与.mod文件导入流程及仿真结果差异,重点分析了两种模型在低频段和高频段的精度表现。通过实际案例展示.s2p文件在高频仿真中的优势,以及.mod文件在低频和非线性特性模拟中的准确性,为射频电路设计提供模型选择策略和混合仿真技巧。

weixin_29289821的博客 519

scala中高阶函数

基本介绍 能够接受函数作为参数的函数,叫做高阶函数 (higher-order function)。可使应用 程序更加健壮。 高阶函数基本使用 //test 就是一个高阶函数,它可以接收f: Double => Double def test(f: Double => Double, n1: Double) = { f(n1) } //sum 是接收一个Double,返回一个Double def sum(d: Double): Double = { d + d } val

迎接小天使 340

树莓派5安装ROS2小白指南避坑攻略

手把手教你如何在树莓派5上顺利安装ROS2,避开常见问题与陷阱,提升配置效率。针对树莓派5安装ros2过程中的依赖冲突、源配置错误等高频难题提供解决方案,适合新手快速上手。

weixin_35754962的博客 1003

大数据术语之Scala

元组 1.元组的创建; 2.元组数据的访问,注意元组元素的访问有下划线,并且访问下标从1开始,而不是0; 3.元组的遍历; 样例类 case class Person(name:String,age:Int) 一 般使用在 ds=df.as[Person] 闭包 一个函数把外部的那些不属于自己的对象也包含(闭合)进来。 def minusxy(x: Int) = (y: Int) => x - y 这就是一个闭包: 1) 匿名函数(y: Int) => x -y嵌套在minusxy函数中。

qq_30003943的博客 304

识别产品外观的合格软件_工业视觉工业质检视觉识别机器视觉视觉检测智能制造工业检测缺陷...

随着工业物联网技术的迅猛发展,掀起了以云计算、大数据、以及人工智能 AI 等信息技术正与传统工业深入融合,由此衍生的 “智能制造4.0” 理念,正在为全球工业带来深远变革。中国的制造业巨头也纷纷借此发力,向智能化、数字化制造演进,实施战略转型。如何高效科学的管理和分析制造业务链上的生产价值,推进制造企业生产工艺优化与产品质量提升是每一个制造企业在数字化、智能化转型过程中的必经之路。业务发展带来的挑...

weixin_42502419的博客 751

晶圆测试(wafer sort)全流程解析:从探针卡到良率统计的实战指南

本文详细解析了晶圆测试(wafer sort)的全流程,从探针卡选型到良率统计的实战指南。涵盖了12英寸先进制程产线的关键技术,包括探针卡系统、测试程序开发、产线自动化集成及数据分析,特别聚焦多站点并行测试的时序优化和接触阻抗异常排查,帮助工程师提升测试效率与准确性。

weixin_29279153的博客 731

Scala从安装配置到入门基础

Scala是一门多范式的编程语言。是一种纯面向对象的语言,每个值都是对象。同时也是一种函数式语言,其函数也能当成值来使用。由于Scala整合了面向对象和函数式编程的特性,因此Scala相对于Java、C#、C++等其它语言更简洁。本文章将通过简单的案例教会大家如何简单的使用Scala编程,大家也可以模仿案例动手实践有助于自己入门学习 Scala也是运行在JVM上的语言,所以必须确认环境中安装了Java Windows安装直接在官网下载后,在本地高级系统设置中添加bin目录地址环境即可............

Anchor 7740

【SEW-伺服电机-Profinet-io通讯控制——伺服配置】

SEW-伺服电机-Profinet-io通讯控制——伺服配置一、本次使用配置说明编写经历受国际形式与疫情影响相关资料查询阅读测试验证不易二、伺服配置流程1.基本准备条件2.硬件-电路连接3.设备在线连接4.软件-参数配置5.手动运行测试6.PN-IO自动控制配置8.PLC1200硬件组态9.PLC软件编程10.调试故障分析三、总结四、参考 一、本次使用配置说明编写经历 受国际形式与疫情影响 由于近期受国际形式影响以及全球疫情影响,Siemens等常用产品供货期与供货量严重受限,项目上不得不采取选用其它替代产

qq_39024187的博客 1万+

Scala语言入门

Scala语言入门

ks_1998的博客 5429

FCN---训练cityspaces

未经允许,不要随意转载! 最近想试试用FCN训练自己的数据集,想想标注是一件很费劲的事,于是就想到了用其他库里的数据,这里选用了cityspaces,默认已经配置好FCN. 1、下载cityspaces https://www.cityscapes-dataset.com/ 需要注册一个账号 cityspaces包含2...

wangyu088的专栏 2030

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 451

Scala快速入门(一篇就够了)

Scala快速入门

阿甘兄 4266

基于Python实现学习进度跟踪系统

{{ task }}: {{ "%.1f"|format(hours) }}小时

寒寒豆豆软件公司的博客 195

Scala 从入门到精通学习笔记

本文全面介绍了Scala编程语言的核心知识点,内容涵盖从基础语法到高级特性的完整学习路径。作为一门融合面向对象与函数式编程的多范式语言,Scala具有类型安全、表达力强、JVM互操作等显著特点。文档系统讲解了变量声明、流程控制、集合操作、面向对象编程、模式匹配、高阶函数、隐式转换等核心概念,并提供了大量代码示例。特别强调了函数式编程的最佳实践,如优先使用不可变变量、Option类型处理空值、链式调用函数等。最后给出了学习路线建议和实用资源,适合从入门到进阶的Scala开发者系统学习。

qq_53401830的博客 1061

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

scala入门笔记

scala基础入门笔记,主要包括scala类型,函数,基本判断语句等

古月慕南的代码世界 569

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Scala入门学习笔记

有java基础感觉scala应该是比较简单的,很快就能上手,scala多了很多花里胡哨的东西,没有java那么朴实无华。 一、Hello World /** * Copyright..@ lbhbinhao@163.com * Author:liubinhao * Date:2020/12/16 * +++++ ______ ______ ______ * ++++/ /|

刘滨浩的博客 1173

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Scala 入门笔记

Scala 函数式编程:感觉spark一般用scala写,甚至spark源码就是用scala实现的,所以就学习一下scala 基础 /** * 基础语法 */ object base { def hello1(name:String):String = { s"my name is ${name}" } def hello2(n...

weixin_30569033的博客 284

Scala入门笔记

一个构建有理数的scala例子class Rational(n: Int, d: Int) { require(d!=0) private val g = gcd(n.abs, d.abs) //最大公约数 val numer: Int = n / g val denom: Int = d / g def this(n: Int) = this(n, 1) override

thesby的专栏 564

Scala入门-随堂笔记

这里写目录标题Scala简介Scala初体验安装及配置Scala验证scala安装插件HelloWorld实例Scala概述Scala变量与常量变量常量使用类型别名定义变量Scala数据类型原始数据类型数据类型层次结构字符串插值Scala条件控制条件语句的返回值Scala循环控制whilefor循环中断for循环过滤for循环返回值Scala数组Scala之Array的方法 Scala简介 Scala源自Java Scala构建在JVM之上 Scala与Java兼容、互通 Scala的优势 多范式编程:面

Helltaker的博客 625

Scala 光速入门之一 笔记

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

cainiaox_的专栏 621

Scala从入门到精通 个人的学习笔记和代码

声明 个人学习scala所作的笔记和写的示例代码。希望能给有需要人的提供帮助。 做笔记的时候还是自发行为,肯定是有很多不足的,所以不喜勿碰,谢谢! 有能力的兄弟,希望能C币支持一波,你们的支持是我继续分享的动力,谢谢你们! 但实在没有C币的兄弟们,可以发邮件至718429427@qq.com,或者留言,我看到了会尽快给您材料的。 点击下载https://download.youkuaiyun.com/download/weixin_43283339/13079925 笔记目录 Scala简介&快速入门 Sca

shihb的博客 307

Scala学习笔记01【Scala入门初探】

1、Scala解释器的使用    下载地址:http://www.scala-lang.org/downloads.    Scala的交互式shell就叫做scala。命令提示符输入scala就行(需配置好Java环境变量):    以下是cmd内容: Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corpor

未来之歌 2632

Scala 笔记(初级入门篇)

Scala的初级编程笔记,对于Scala进行初探,学习点皮毛。

zsk843的博客 456

Scala学习笔记【从入门到放弃】

一、关于Scala安装 https://www.scala-lang.org/download/ 如果你是Java程序员,想学习Scala,请看官网提供的快速入门: https://docs.scala-lang.org/tutorials/scala-for-java-programmers.html 二、Scala语言Hello World的编写 object H...

zp的博客 1883

Scala入门到开发笔记分享

学习Scala时的一些笔记,分享给大家

Wai0210的博客 483

Scala语言 · 入门学习笔记

Scala学习目录Scala语言Scala 特性面向对象特性函数式编程静态类型扩展性并发性第一个Scala程序基础Scala 基础语法基础引深集合更多的集合不可变可变集合Scala 访问修饰符私有(Private)成员Scala运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符Scala IF...ELSE 语句if语句if...else 语句if...else if...else 语句if...else 嵌套语句模式匹配与函数组合函数组合 Scala语言 W3Cschool的Scala文档:http

Sartin的博客 884
上一篇: Scala_环境配置
下一篇: Scala_入门笔记_List
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值