scala学习(idea编译过程https://blog.csdn.net/guiying712/article/details/68947747)
scala官网
https://www.scala-lang.org/
菜鸟教程学习
http://www.runoob.com/scala/scala-basic-syntax.html
w3school
https://www.w3cschool.cn/scala/85pl1jc9.html
查看scala的返回值类型,可以使用 表达式.var 回车即可查看
idea里设置scala语言的table跨格数



当new类时,类中除了方法不执行其他都执行
object相当于java中的单例,定义的都是静态
class可以传参传参就有了默认的构造语句,this方法
重写构造时,第一行要先调用默认的构造
object不可以传参,apply方法
伴生类好的伴生对象

Scala里面如何使用break和continue
 





格式化快捷键
ctrl+shift+alt+L














可以直接在类加载里面写输出,而不需要放在方法里,而方法调用object里的属性,因为是类单例,可以直接调用

apply方法相当于构造方法的重载




注意点:
l	建议类名首字母大写 ,方法首字母小写,类和方法命名建议符合驼峰命名法。
l	scala 中的object是单例对象,相当于java中的工具类,可以看成是定义静态的方法的类。object不可以传参数。另:Trait不可以传参数
l	scala中的class类默认可以传参数,默认的传参数就是默认的构造函数。
重写构造函数的时候,必须要调用默认的构造函数。
l	class 类属性自带getter ,setter方法。
l	使用object时,不用new,使用class时要new ,并且new的时候,class中除了方法不执行,其他都执行。
l	如果在同一个文件中,object对象和class类的名称相同,则这个对象就是这个类的伴生对象,这个类就是这个对象的伴生类。可以互相访问私有变量。

foreach操作











冒号是代表返回值 =>代表指向=代表等同于



_是占位符



上述(1,2)(3,4)实质是前两者为函数本身的内容即a和b,后两者3,4是返回函数的的输入即v1和v2 而(Int,Int)=>Int的最后Int是返回函数的返回值
下面的(a,b)=>{a+b}是给函数f赋予函数执行体


上述的例子:即
把f函数给构造出来,并在(a:Int,b:Int)=>{a*b} 的时候把f函数给构造成为两数相乘的函数传入

柯理化函数http://www.runoob.com/scala/currying-functions.html













当字符串进行数组或者list,set等下面运算时,是加到后面,不是加到数组里面
val arr1=arr.+("hello")
此时hello是单独放在arr数组外面的后面,而不是数组里面后面








记住,可变长,或者var
var或者mutable其中一个存在,即是可变的



x._1和x._2分别代表map的键和值,

遍历keys的时候
map.keys返回的map的iterable迭代器类型
如果map或者list或者数组等里面有不同种类的数值时,类型为Any


个人觉得是相反的,++是map2加入map1,而++:是map1加入map2
因最后的例子输出结果是map1覆盖了map2即如图,因map覆盖特性,觉得例子中++:是map1加入map2


count和filter例子输出结果为

即count是把满足条件的个数输出,返回值为Int,filter是把满足条件的键值对输出

返回布尔值,


过滤查找值为200的并输出
python中元组不可修改用()表示,列表可修改用[]表示,字典是用{}表示


即必须tuple所带参数和tuple内参数个数相同,且不能超过22


上面为元组嵌套,t._1._2意思为tuple2元组里的第一个内容元组的第二个值,即元组(1,2)的第二个值2








下面增加

输出

更改重写的方法

p3p4输出为






因为先匹配到Int,所以后续的1,2,3,4不会看,因为3是浮点型,继续往下,所以是3
因此我们若想要先输出1,2,3,4再判别,则可以将Int的判别放在后面























之所以先启动1,是因为1是接受者,要先启动接受者,避免启动发送者,没有接受者报错

用占位符替代,完成一行代码的,这种操作要记得



基本语法
Scala 基本语法需要注意以下几点:
区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。
类名 - 对于所有的类名的第一个字母要大写。
如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。示例:class MyFirstScalaClass
方法名称 - 所有的方法名称的第一个字母用小写。
如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。示例:def myMethodName()
程序文件名 - 程序文件的名称应该与对象名称完全匹配(新版本不需要了,但建议保留这种习惯)。
保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。示例: 假设"HelloWorld"是对象的名称。那么该文件应保存为'HelloWorld.scala"
def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分
标识符
Scala 可以使用两种形式的标志符,字符数字和符号。
字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。
Scala 的命名规则采用和 Java 类似的 camel 命名规则,首字符小写,比如 toString。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。符号标志符包含一个或多个符号,如+,:,? 等,比如:
+ ++ ::: < ?> :->
Scala 内部实现时会使用转义的标志符,比如:-> 使用 $colon$minus$greater 来表示这个符号。因此如果你需要在 Java 代码中访问:->方法,你需要使用 Scala 的内部名称 $colon$minus$greater。
混合标志符由字符数字标志符后面跟着一个或多个符号组成,比如 unary_+ 为 Scala 对+方法的内部实现时的名称。字面量标志符为使用"定义的字符串,比如 `x` `yield`。
你可以在"之间使用任何有效的 Scala 标志符,Scala 将它们解释为一个 Scala 标志符,一个典型的使用为 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因为 yield 为 Scala 中的关键字, 你必须使用 Thread.`yield`()来使用这个方法。




数据类型是因为在运行时占用内存,所以数据类型是可以分开,使得效率提高

Anyvel 所有值类型的超类


输出全部1到10









scala学习(idea编译过程https://blog.csdn.net/guiying712/article/details/68947747)的更多相关文章
- K8S 使用NFS 创建PV和PVC的例子  学习From  https://blog.csdn.net/xts_huangxin/article/details/51494472
		
1. 获取资料 网址: https://blog.csdn.net/xts_huangxin/article/details/51494472 感谢原作者 这里面 按照自己的机器情况进行了学习模仿 ...
 - 转-java编译时error: illegal character '\ufeff' 的解决办法-https://blog.csdn.net/t518vs20s/article/details/80833061
		
原文链接:https://blog.csdn.net/shixing_11/article/details/6976900 最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退 ...
 - 程序员的沟通之痛https://blog.csdn.net/qq_35230695/article/details/80283720
		
个人理解: 一般刚工作的程序员总觉得技术最重要.但是当工作年限超过3年.或者岗位需要涉及汇报.需求对接等就会发现沟通非常重要.也许在大公司还不那么明显,但是在小公司.小团队或者创业,沟通甚至可以说是第 ...
 - AutoFac控制反转 转载https://blog.csdn.net/u011301348/article/details/82256791
		
一.AutoFac介绍 Autofac是.NET里IOC(Inversion of Control,控制反转)容器的一种,同类的框架还有Spring.NET,Unity,Castle等.可以通过NuG ...
 - 手把手教你如何玩转消息中间件(ActiveMQ)  https://blog.csdn.net/cs_hnu_scw/article/details/81040834
		
#情景引入小白:起床起床起床起床....快起床~我:怎么了又,大惊小怪,吓到我了.小白:我有事有事想找你,十万火急呢~~我:你能有什么事?反正我不信..那你说说看~~小白:就是我有两个小表弟,叫大白和 ...
 - https://blog.csdn.net/u011489043/article/details/68488459
		
转自https://blog.csdn.net/u011489043/article/details/68488459 String 字符串常量 StringBuffer 字符串变量(线程安全) ...
 - https://blog.csdn.net/doegoo/article/details/50749817
		
因为使用DiscuzX3.2进行系统的整合后,因为只是想在原J2EE的系统上增加论坛功能,而且J2EE中已经有一套用户的注册认证的体系,所以不需要在Discuz的系统中去注册以及登录功能,而是通过在J ...
 - windows 安装lua-5.3.4 --引用自https://blog.csdn.net/wangtong01/article/details/78296369
		
版权声明:本文为博主原创文章,转载时请标明出处.http://blog.csdn.net/wangtong01 https://blog.csdn.net/wangtong01/article/det ...
 - [Android Pro]   https://blog.csdn.net/gaugamela/article/details/79143309
		
原文地址:https://blog.csdn.net/gaugamela/article/details/79143309 最近遇到这样一个问题: 第三方的SDK除了Jar包外,还提供了对应的so文件 ...
 
随机推荐
- Julia - 短路求值
			
&& 和 || 的布尔运算符被称为短路求值 它们连接一系列布尔表达式,仅计算最少的表达式来确定整个链的布尔值 在表达式 a && b 中,只有 a 为 true 时才计 ...
 - thymeleaf switch在表格中的使用,遇到的空行问题
			
switch在表格中的使用时 如果把<td>写在<div th:switch="${data.isShow}"> 里面导致外面出现很多空的<div&g ...
 - ASU一位图形学老师推荐的book list
			
http://peterwonka.net/Documentation/BooksToRead.htm 包括数学.图形学.OpenGL等资料
 - GetEnumName 枚举名称 字符串
			
System.TypInfo.pas System.TypInfo.hpp http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.TypIn ...
 - Windows下安装logstash
			
1. 下载 https://www.elastic.co/downloads/logstash https://www.elastic.co/downloads/past-releases 2. 文档 ...
 - ios笔试题
			
最近找工作,有面试有笔试部分,故把笔试题自己整理了下. 面试能力要求:精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能; 擅长通讯 ...
 - failed to open stream: No such file or directory 报错解决方法
			
1.首先检查是否是文件名错误(比如有空格):是否因为路径不完整(比如缺少http://,或者缺少文件扩展名.doc等): 2.若是在本地中文名文件打开报错,我就是因为编码不一致导致: Windows中 ...
 - python 文件的读取&更新
			
[python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...
 - 配置jdk和tomcat的环境变量
			
一.1,新建变量名:JAVA_HOME,变量值:d:\Program Files\Java\jdk1.7.0 2,打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jr ...
 - HttpMessageConverter和ContentNegotiatingViewResolver
			
HttpMessageConverter 在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,HttpMessa ...