注释
package tcode.chapter02object $01_Command {/*** java的注释:* 单行注释: //* 多行注释: /* .. */* 文档注释: /** .. */* scala的注释:* 单行注释: //* 多行注释: /* ..*/* 文件注释: /** ..*/*/def main(args: Array[String]): Unit = {//单行注释val name:String = "zhangsan"/*多行注释*/val age:Int = 20}}
命名规范
- java中标识符的命名规范: 必须是数字、字母、下划线、$,首字母不能是数字
scala中标识符的命名规范: 必须是数字、字母、下划线、$、某些特殊符号, 首字母不能是数字
scala中定义标识符的时候特殊符号是scala内部使用,不推荐开发人员使用
* 在工作中定义变量的时候还是推荐驼峰原则 ```scala package tcode.chapter02
object $02_ParamdDefindName {
def main(args: Array[String]): Unit = {
val + = "zhsan"
} }
<a name="828rZ"></a># 变量定义//java中定义变量: [final] 类型 变量名 = 值<br /> //scala中定义变量: val/var 变量名: 类型 = 值<br /> //scala定义变量的时候,变量类型可以省略,省略之后scala会自动推断<br /> // val与var的区别:<br /> // val修饰的变量相当于java final修饰的变量,不可修改值<br /> // var修饰的变量可以修改值<br /> //scala中定义变量的时候,必须初始化<br /> //scala中如果一行只写一个语句,分号可以省略,如果一行写多个语句,多个语句之间必须通过;分割```scalapackage tcode.chapter02object $03_ParamDefined {def main(args: Array[String]): Unit = {val name:String = "zhangsan" ;var age:Int = 20// name = "lsii"age = 100println(name)println(age)//自动推断变量类型val address = "shenzhen"println(address)//scala中定义变量的时候,必须初始化//var sex:String}}
字符串
/
java中如何得到字符串:
1、拼接: “aa”+”bb”
2、new String
3、一些方法: toString,subString,..
* 4、双引号包裹: “xxx”
scala中字符串:**
1、new String
2、双引号包裹: “xxx”
3、拼接:
1、通过+拼接: “aa”+”bb”
2、插值表达式: s”${外部变量/值/表达式}”
视情况,可以不写‘{}’
4、一些方法: toString,subString,..
format方法: 在字符串中引入占位符,后续可以动态传入参数
%s: 字符串的占位符
%d: 整数占位符
%f: 浮点型占位符
5、三引号: 能够完整保留字符串的格式[一般用于写sql语句]
可以不转义
*/
package tcode.chapter02object $04_String {def main(args: Array[String]): Unit = {val s = new String("xxx")println(s)val name = "yyy"println(name)val cc = "aa"+"bb" + nameprintln(cc)//插值表达式: s"${外部变量/值/表达式}"val dd = s"aa ${name} ${1+1}"println(dd)println(dd.substring(2))val host = "hadoop102"val port = "8020"val url =s"hdfs://${host}:${port}/user/hive/warehouse"val url3 =s"hdfs://$host:$port/user/hive/warehouse"println(url)println(url3)val xx = s"${host}andport"println(xx)// format方法val url2 =s"hdfs://%s:%f/user/hive/warehouse"println(url2.format(host, 1.1))val sql = "select " +"id," +"name," +"age" +" from person " +"where id>30"// 三引号val sql2 ="""|select| id,| name,| age| from perosn| where id>30""".stripMarginprintln(sql2)}}
读取数据
//scala中读取控制台数据(键盘输入): 静态方法:StdIn.readXXX
//从文件读取数据(封装的io流): 静态方法:Source.fromFile(path).getLines
package tcode.chapter02import scala.io.{Source, StdIn}object $05_StdIn {def main(args: Array[String]): Unit = {// 键盘输入字符串val line = StdIn.readLine("请输入一行语句:")println(line)// 键盘输入数字val i = StdIn.readInt()println(i)// 文件读取,getlines方法返回迭代器Source.fromFile("d:/data.txt","utf-8").getLines().foreach(x=>println(x))}}
数据类型

/
java中的数据类型:
1、基本数据类型[不是对象]: byte、short、int、long、float、double、char、boolean
2、引用数据类型: String,数组,集合,java class
/
scala类型:
没有基础数据类型,
只有引用数据类型。**
| Any:所有类的父类 | ||
|---|---|---|
| AnyVal:值类型 | AnyRef:引用类型 | |
| Byte、Short、Int、Long、Float、Double、Char、Boolean Unit: 相当于java的void,有一个实例() StringOps: 是对Java字符串的补充 |
String, 数组, 集合, java class, scala class |
|
Null: 是所有引用类型的子类,有一个实例null【一般用于给引用类型赋予初始值,在赋予初始值的时候,必须定义变量的类型】![]() |
||
| Nothing: 所有类的子类,是scala内部使用 |
package tcode.chapter02object $06_Type {def main(args: Array[String]): Unit = {// 一般用于初始化var age:String = null}}
类型转换
/*
数字与数字的转换
1、低精度转高精度[Int->Long]: 自动转换
2、高精度转低精度[Long->Int]: toXXX方法转换
数字与字符串的转换
1、数字转字符串:
1、拼接
1、通过+拼接: 数字+””
2、插值表达式: s”${数字}”
2、toString
2、字符串转数字: toXXX方法
*/
package tcode.chapter02object $07_DataCover {def main(args: Array[String]): Unit = {val a:Int = 10val b:Long = aprintln(b)//高精度转低精度val c:Int = b.toIntprintln(c)val e:String = c.toStringprintln(e)//数字转字符串:val f:String = c + ""val g:String = s"${10}"println(f,g)val u = f.toIntprintln(u)}}

