Scala 语言入门(一)基础语法和函数使用
【摘要】 一、下载安装 scala
将下载好的scala-2.12.8.zip包解压到当前目录,配置 环境变量
配置path 和 classpath
编写 HelloWorld.scala文件
object HelloWorld{ def main(args:Array[String]){ println("hello world!!!") }}
在cmd 窗口...
一、下载安装 scala
将下载好的scala-2.12.8.zip包解压到当前目录,配置 环境变量
配置path 和 classpath
编写 HelloWorld.scala文件
-
object HelloWorld{
-
def main(args:Array[String]){
-
println("hello world!!!")
-
}
-
}
在cmd 窗口,执行 scalac HelloWorld.scala 等待编译成功之后,执行 scala -classpath . HelloWorld 看到 控制台输出
hello world !!!即可。
二、val 和 var
val :值 (不可变)
final
例如: val age:int =20
var :变量 (可变的)
var name:String ="zhangsan"
name = "zhangsi"
:int :String 可以不写,scala 大多数情况下可以自动推导出数据类型
三、scala 基本数据类型
Byte/Char
Short/Int/Long/Float/Double
Boolean
类型转换 : 10.asInstanceOf[Double]
判断是否是某个类型: 10.isInstanceOf[Int]
四、lazy 在 scala 中的使用
val i = 1
lazy val a = 1 , 用lazy修饰,只有在第一次使用的使用才会去给a 进行赋值。
五、函数/方法的定义
-
def 方法名(参数名:参数类型):返回值类型={
-
//括号内的叫做方法体
-
//方法体内的最后一行为返回值,不需要使用return
-
}
-
/**
-
* @author DuanZhaoXu
-
* @ClassName:
-
* @Description:
-
* @date 2018年12月17日 16:58:23
-
*/
-
object HelloWorld {
-
-
def main(args: Array[String]): Unit = {
-
// println("hello world")
-
// println(add(1, 2))
-
// println(three())
-
// println(three)
-
sayHello("张三")
-
sayName("pk1")
-
-
//命名参数的使用
-
println(speed(100, 10))
-
println(speed(distance = 100, time = 10))
-
println(speed(time = 10, distance = 100))
-
-
//可变参数 def sum(number:Int*)
-
println(sum(1, 5, 6, 10))
-
-
//if使用
-
println(ifTest(10))
-
}
-
-
//函数基本使用
-
def add(x: Int, y: Int): Int = {
-
x + y
-
}
-
-
def three() = 1 + 2
-
-
def sayHello(name: String): Unit = {
-
println("say hello..." + name)
-
}
-
-
//1.函数默认参数
-
def sayName(name: String = "PK"): Unit = {
-
println(name);
-
}
-
-
//以不按照传入参数的顺序进行函数调用
-
def loadConf(conf: String = "spark-default.conf"): Unit = {
-
println(conf)
-
}
-
-
//2.命名参数的使用,在调用此函数方,
-
def speed(distance: Float, time: Float): Float = {
-
distance / time
-
}
-
-
//3.可变参数
-
def sum(a: Int, b: Int) = {
-
a + b
-
}
-
-
def sum(a: Int, b: Int, c: Int): Int = {
-
a + b + c
-
}
-
-
//4.可变参数
-
def sum(numbers: Int*) = {
-
-
var sum = 0;
-
for (number <- numbers) {
-
sum += number;
-
}
-
sum
-
}
-
-
//5.if 语句
-
def ifTest(number: Int): Boolean = {
-
if (number > 1) true else false
-
//if(number>1){
-
//true
-
// }else{
-
//false
-
// }
-
}
-
-
//循环表达式
-
def toTest(): Unit = {
-
//to (闭区间)
-
1 to 10
-
1.to(10)
-
-
//range (不包含10)
-
Range(1, 10, 1)
-
Range(10, 1, -1)
-
-
//until 和 range 等效
-
1 until 10
-
1.until(10)
-
-
-
//for 循环
-
for (i <- 1 to 10 if i % 2 == 0) {
-
println(i)
-
}
-
-
-
val courses = Array("Hadoop", "Spark sql", "Spark streaming", "storm", "scala")
-
for (course <- courses) {
-
println(course)
-
}
-
-
//foreach
-
courses.foreach(course => println(course))
-
-
//while 循环
-
var (num, sum) = (100, 0)
-
while (num > 0) { //出口
-
sum = sum + num;
-
num = num - 1; //步长
-
}
-
println(sum)
-
}
-
-
-
}
文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31905135/article/details/85050371
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)