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)