scala笔记

.scala源码->scalac(得到.class字节码文件)->jvm->机器硬件 能够使用java的部分语法 增加函数式编程 偏函数 函数的柯里化 高阶函数 将函数作为参数传递

学习scala特有语法 搞清楚区别 规范使用scala

object Testscala ,对应的是一个Testscala$的一个静态对象MODULE$ 在程序中,是一个单例

scala源文件以.scala为扩展名 scala程序的执行入口是main函数,但还是进行了包装 scala方法是由一条条语句构成,每个语句不需要分号 如果同一行有多条语句,除了最后一条语句不需要分号,其它语句都需要分号

scala支持使用$输出内容

scala三种输出方式 字符串通过+连接(类似java) printf用法 (类似C语言)字符串通过%传值 字符串通过$引用(雷系python)

查看源码,选择查看的方法或者类,输入ctrl+alt+b 代码格式化快捷键:ctrl+alt+l 注释写在方法或者类级别就足够了 运算符两边习惯各加一个空格,比如:2 + 4 * 5 使用shift+tab整体左移 使用tab整体右移

变量: var 变量名:类型=值 +的使用: 如果两边为数字,则做运算 如果一边为字符串,则做拼接运算 Scala与java有相同的数据类型,在scala中一切皆为对象 scala数据类型分为两大类,AnyVal(值类型)和AnyRef(引用类型) ,两者皆为对象 在scala中有一个跟类型Any,它是所有类的父类 scala中一切皆对象,分为两大类,AnyVal(值类型)和AnyRef(引用类型) 他们是Any子类 Null类型是scala的特别类型,它只有一个值null,他是bottom class(底层类),是所有AnyRef类型的子类 Nothing类型也是bottom class,他是所有类的子类,在开发中通常可以将Nothing 类型的值返回给任意变量或者函数,这里抛出异常使用很多

在scala中仍然遵守,低精度的值,向高精度的值自动转换(implicit conversion)隐式转换

scala字面量类型默认为Int 浮点数的使用细节: 1.浮点型默认为Double型,声明Float型变量,须后加'f'或'F' Boolean只允许取值true和false Unit等价于java的void,只有一个实例值() Null只有一个实例对象,可以赋值给任何引用类型变量 byte,short,char 他们三者可以计算,在计算时首先转换为int类型 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型 强制符号只针对最近的操作数有效,往往会使用小括号提升优先级

在讲String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如:可以把“123”,转成一个整数,但是不能把“hello"转成一个整数

%的运算规则:a%b=a-a/b*b scala中没有++,-- string类型转基本数据类型 语法,通过基本类型的string的toXxx方法即可

查看某个包下包含的内容 讲光标放在io上即可,输入ctrl+alt+b

P41

 陆续更新中。。。

原文地址:https://www.cnblogs.com/dreamzj/p/14332644.html