网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Scalafor循环怎么使用-创新互联

本篇内容介绍了“Scala for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

创新互联是专业的海口网站建设公司,海口接单;提供成都网站建设、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行海口网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

基本语法:变量,变量的定义:不可变:val a = 2 或者 val a : Int = 2 (指定了数据类型) lazy val a : Int =2

可变:var a = 2 或者 var a : Int = 2(指定了数据类型)

def a = 2

定义变量不能1.以数字以及特殊符号(_除外)开头 2.以关键字(var、val、class等)开头

def定义的是??

var 编译后有set 与 get 方☐法 所以可以重新赋值

val 编译后只有get方法 所以不能再赋值了

lazy 惰性变量,只在该变量被调用的时候才实例化,而且后面只能跟val

def 与val 差不多 不能重新赋值 更多修饰方法

Scala变量的类型:Any是scala的顶级类型,Any下有AnyVal(值类型)和AnyRef(引用类型)两个子类

AnyVal : 它有9个类型,其中7个是指类型:Double Float Byte Int Short Long Char 和两个非值类型:Unit Boolean

AnyRef : 是引用类型,它的子类有:List Option 或者自定义的并继承它的class

所有的类型都需要首字母大写

Scala会自动推断类型

Scala数据类型可以从低到高转换 Byte-Short-Int-Long-Float-Double

Char-Int-Long-Float-Double

注意:scala内没有强转

操作符

Scala里没有操作符的概念,所谓的操作符其实都是方法

数学运算:+ - * / : % .+ ( ) 注:x+y 与 x.+(y)等价

关系:< <= > >= ! != ==

位运算: | & ^

如果两个不一样类型的变量进行运算,最终结果的类型是大的那个类型

如果想要格式化输出:var x =5 var y = 5

var n =x + y

print(s”x+y=$n”) 输出结果 x+y=10

当然也可以在结果前面加字符串”x+y”

条件表达式

这种打出来是空,因为else里不是一个值,而是一个赋值语句

正常应该是 var res = if(sex == 1){“男”}else{“女”}

因为大括号里只有一个‘表达式’,大括号可以省略

var res = if(sex == 1)“男”else“女”

for循环

for(i<- 1 to 10){println (i)} //打印1-10

for(i <- 1 until 10){println (i)} //打印1-9

val arr = Array(“java”,”scala”,”python”) //定义一个数组

for(i<- arr){println (i)} //打印数组内容

for(i <- 1 to 3 ;j <- 1 to 3 if(i != j)){println(i*10+j)} //相当于双层for循环

val arr =for(i <- 1 until 10) yield (i) //把0-9循环出来后封装进arr集合

val arr =for(i <- 1 until 10) yield (i*10)

val res2 = for(i <- arr if i%2 == 0) yield i*100 //过滤

val arrf = bf.filter(_ %2==0).map(_ *100) //过滤 _ 是全部数据的意思

在scala中不支持break语句,但在scala 2.8之后 可以利用Breaks方式来实现

方法

def m1(x : Int , y : Int ) : Int = {x + y} //三种声明方式

def m2(x:Int , y:Int) {print(x+y)}

def m3(x:Int , y:Int){x+y}

解释:m1是方法名 xy是int型的参数 括号外的int是返回值类型 x+y是方法

调用:m1 (3,4)

函数

val f1 = (x:Int , y:Int) => x+y //声明

val f1 = (x:Int , y:Int) =>{

val sum = x+y

sum*100} //最后一句作为函数的返回值 函数没有返回值类型

回车之后会看到

f1: (Int, Int) => Int =

这里的function2中的2指的是参数的个数

调用:f1 (3,4) //与方法的调用一致

函数与方法的关系???

我们通过一个案例来探讨:

首先创建一个方法:def func (yAge:Int,mAge:Int):String={

val a : Boolean = yAge >= mAge

val str : String = if(a) "哥哥" else "弟弟"

str

}

我们发现这个条件可以做成一个函数:val m = ( yAge:Int , mAge:Int ) = >{yAge >= mAge}

我们可以调用函数:def func1 (yAge:Int,mAge:Int):String={

val a : Boolean = m(yAge,mAge)

val str : String = if(a) "哥哥" else "弟弟"

}

我们也可以把函数当做一个参数传入到方法中:

def func1(yAge:Int,mAge:Int,f:(Int,Int) =>Boolean):String={

var a= f(yAge,mAge) 或者var a :Boolean = f(yAge,mAge)

val res : String=if(a)"哥哥" else "弟弟"

res

}

调用: println(func1(18,20,m))

“Scala for循环怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联-成都网站建设公司网站,小编将为大家输出更多高质量的实用文章!


新闻名称:Scalafor循环怎么使用-创新互联
链接URL:http://bjjierui.cn/article/ccojps.html

其他资讯