1、idea初始配置:
1、统一字符编码
file-setting-editor-file Encoding-
global encoding(UTF-8)-
project enconding(utf-8)-
defalaut encoding for properties file(utf-8)
2、配置默认换行符
file-setting-editor-code style-line separator(unix and macOS)
3、字体大小
file-setting-editor-font-size字体大小(18)-line spacing行间距(1.1)
4、更改maven
file-setting-build,execution,deployment-maven-选择always update snapshots(总是更新屏幕快照)-不能选work office-
maven home directory:maven版本-user setting files :默认(不能有中文)-local repository:默认不能有中文
2、创建maven
1、file-new project-maven-JDK-groupID(com.atguigu)-artifactid(scala1015)-localion(目录地址)。
3、idea支持Scala开发
1、安装Scala:
file-setting-plugins-scala-install
2、配置Scala支持:
:右键Scala1015-add framework support-scala-use library-create-选择-或者browse-Scala位置-OK
3、创建一个目录,专门写Scala代码:
main右键-new-directory-scala-ok
4、把目录标记为源码:
scala右键-Mark directtory as-resorce root
5、创建包:
scala右键-new-package-com.atguigu.scala1015.day01
6、创建scala:
右键com.atguigu.scala1015.day01-new-scala class-object(对象)(class(类)/)-helloworld
7、执行代码:
java是定义类,然后再类中定义一个静态的main方法。
Scala没有静态的概念。创建对象,在对象中定义main方法。(main回车即可)
8、创建helloworld:
package com.atguigu.scala1015.day01
object helloworld {
def main(args: Array[String]): Unit = {
println("helloworld")
}
9、绑定源码:
点击println-Choose sourse-Scala-2.11.8.tar.gz-OK
10、反编译:
,右键-show in explore-代码拉入jd-gui.exe-进行反编译。
11、Scala严格区分大小写。
Scala方法由一条一条语句构成的,分号可不写。
12、Scala官网-download-learn-tour of scala-langurge-简体中文
13、注释:
单行注释:// 多行注释:// 文档注释/ * **/ 注释量20%-30%占比
14、变量:
java:int a=10 常量 final int a=100 final 太监类 没有后代 不能有子类
Scala:声明变量 var a:int=10 声明常量 val b: int=100
注意:在scala中能用常量的地方就不要用变量。常量安全!!
声明的时候给变量和常量赋值
printin(a) 的快捷键a.sout tab
配置变量参数显示file-setting-Inlay Hints-scala-Parameter hint(参数类型)-show Parameter hint(显示参数)
alt + enter 万能快捷键
15、命名规范:
1、使用JAVA的命名规则 标志符(变量,常量,对象,方法,函数) 数字字母(下划线慎用)驼峰(大驼峰:类 小驼峰:方法类)
2、不要使用$,一些类会自动添加$
3、支持使用运算符(+-/*)来命名标志符.在scala中没有真正的运算符 所有运算符都是对象的方法。
4、字符和运算符不能混用 a++不允许 ,如果混用,可以用_隔开。
5、可以使用 ` ` 定义任意字符,为了兼容java中的一些标志符。
16、github checkout项目。
file-setting-system setting-reopen last project on startup(打开上次项目)-不选
登录idea-get from version control-respository URL-version control:git-url-clone-ok (把目录标记为源码\配置JDK)
VCS-update project-conflicts-accept theirs(接受他们的)-增量更新。
17、字符串的输入输出:
java的输出 system.out.printLn("") scala的输出:println("") printf格式化输出 %d 输出整数 %s 输出字符串 %f 输出浮点数
18、字符串插值:
object string_1 {
def main(args: Array[String]): Unit = {
// val a:Int=20
// printf("格式化输出 %d",a)
// printf("浮点数 %f",math.Pi)
// val a:Int=10
// val b:Int=20
// val s=s"a=${a*2},b=${b*3}"
// val s="\\n"
val s=raw"\n"
println(s)
}
}
19、IDEA编写Scala代码时自动显示变量类型:
settins -->Editor–> Code Style --> scala --Type Annotations-local definition
20、多行字符串
object string_2 {
def main(args: Array[String]): Unit = {
// val s =
// """
// |ffff
// |ffff
// |nnnnn
// |nnnnn
// |mmmm
// |""".stripMargin
val date ="2020-03-02"
val s =
s"""
|select
|*
|from user
|where date='$date'
|""".stripMargin
println(s)
}
}
21、从键盘输入数据
import scala.io.StdIn
object input {
def main(args: Array[String]): Unit = {
// val scanner=new Scanner(System.in) //JAVA方法
// println(scanner.nextLine())
val line =StdIn.readLine("请输入你的银行卡密码:")
println(line)
}
}
22、数据类型:
java 基本数据类型:
8大数据类型 byte 1 short 2 char 2 int 4 long 8 float 4 double 8 boolean 1(字节)
引用数据类型:对象类型、除了基本类型都是引用类型
Scala 所有数据都是对象,函数也是对象
Any AnyVal Double …Unit(类型) 对应着java中的void 只有一个值就是:()一般用于方法或者函数不需要返回值的时候返回值。
StringOps 看成是string的加强版 当使用java的string时候,一些没有方法,会自动从这个类型中找。
AnyRef null 在java中可以给任何的引用类型赋值 在Scala中是所有AnyRef的子类型 只有一个值:null
Nothing:在Scala中,是所有类型的子类型 是一个象征意义,用于辅助类型推导,一般用于非正常结束情况的返回值。