总结scala(一)
由于笔记太多,分为了几部分,进入我的博客,查看其它的笔记
scala:面向对象,函数式编程
一、声明变量
1、变量的类型
Byte,Char,Short,Int,Long,Float,Double,Boolean
2、变量的声明
val:变量是不可变的
var:变量是可变的
3、代码
object nameDemo {
def main(args: Array[String]) {
val name:String = "华安"
var name1:String = "秋香"
val name2,name3,name4:String = "小强"
println(name4)
}
}
二、输出到控制台
1、输出的类型
print(): 不换行输出
println(): 换行输出
printf():printf("输出语句%s过滤字符 %d过滤数字","s",3)
2、代码
object printDemo {
def main(args: Array[String]) {
print("Hello word")
println("Hello word")
printf("Hi , my name is %s, I'm %d years old.\n","leo",30)
}
}
三、if语句(条件表达式)
1、scala中if语句有返回值,可以直接用变量来接收
2、代码
object ifDemo {
def main(args: Array[String]) {
val name:String = "石榴"
val res = if(name.equals("秋香"))18 else 30
输出结果:30
val res1 = if(name.equals("秋香"))18 else ""
输出结果:
val res2 = if(name.equals("秋香"))18
输出结果:()
println(res1)
}
}
四、循环
1、while循环
(1)、和java的while循环一样,但是在scala里面没有break这样的关键字,要中断循环可以调用break()方法
同时跳出循环语句必须包含在breakable方法体中,否则抛异常,也可以使用标记跳出循环
(2)、代码
使用标记跳出循环
var flay = true
while (flay) {
count += 1
println(count)
if (count > 3) {
flay = false
}
}
使用break()方法跳出循环
breakable( {
while (true) {
count += 1
println(count)
if (count == 10) {
break()
}
}
})
2、for循环(for循环常见的几种方式)
(1)、遍历字符串
for(i <- "hello word"){
println(i)
}
(2)、1 to x :得到一个1到x的区间,区间为一个概念更宽泛的集合,实际上是调用了一次方法
for(i <- 1 to 10){
println(i)
}
(3)、1 until x:得到一个1到x-1的区间
for(i <- 1 until 10){
println(i)
}
(4)、多重循环
for(i <- 1 to 9;j<- 1 to 9){
if(j==9){
println(i+"*"+j+"="+i*j)
}else{
print(i+"*"+j+"="+i*j+" ")
}
}
(5)、循环中加条件表达式
for(i <- 1 to 9;j<- 1 to 9 if i%2==0){
if(j==9){
println(i+"*"+j+"="+i*j)
}else{
print(i+"*"+j+"="+i*j+" ")
}
}
(6)、推导式 返回一个新的集合
val arr = for(i <- 1 to 10 if i%2 == 1)yield i*3
for (a <- arr){
println(a)
}
总结scala(一)的更多相关文章
- jdb调试scala代码的简单介绍
在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...
- scala练习题1 基础知识
1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等: 2,在scala REPL中,计算3的平方根,然 ...
- 牛顿法求平方根 scala
你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- Scala化规则引擎
1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...
- Scala快速概览
IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...
- Scala Macros - scalamela 1.x,inline-meta annotations
在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...
- Scala Macros - 元编程 Metaprogramming with Def Macros
Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...
- Scala Reflection - Mirrors,ClassTag,TypeTag and WeakTypeTag
反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(express ...
- Scala For Java的一些参考
变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...
随机推荐
- 用MPLAB IDE编程时,软件总是弹出一个窗口提示: “the extended cpu mode configuration bit is enabled,but the program that was loaded was not built using extended cpu instructions. therefore,your code may not work properly
用MPLAB IDE编程时,软件总是弹出一个窗口提示:"the extended cpu mode configuration bit is enabled,but the program ...
- js的break语句,continue语句,return语句
js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...
- R语言与SQL server链接
第一步:创建数据源(方法见下面链接) http://www.2cto.com/database/201412/365396.html 第二步:在R中输入以下代码: #####SQL SERVER与R语 ...
- 烧录口被初始化为普通IO
烧录口被初始化为普通IO后如果复位端没有的烧录口会导致不能识别烧录器不能下载与调试,因为程序一开始就把端口初始化了,烧录器不能识别,添加复位端口到烧录器(前提是你的烧录器有复位端). 有了复位段之后, ...
- java上转型和下转型(对象的多态性)
/*上转型和下转型(对象的多态性) *上转型:是子类对象由父类引用,格式:parent p=new son *也就是说,想要上转型的前提必须是有继承关系的两个类. *在调用方法的时候,上转型对象只能调 ...
- java线程控制方法
一.中断线程 1.Thread.sleep()让线程进入睡眠状态,放弃CPU的占用暂停若干毫秒使用方法: public class runable implements Runnable { @Ove ...
- javascript——数据类型
在内存中,分为栈.堆.代码段.静态区,为了快速处理复杂的代码,在不同的区间储存不同的数据类型. 数据类型分为初始类型与引用类型,初始类型在栈中存储,变量赋值传值不传址,引用类型在堆中存储,传址不传值. ...
- C/C++对bool operator < (const p &a)const的认识,运算符重载详解(杂谈)
下面来进行这段代码的分析: struct node { //定义一个结构体node(节点) int x; int y; int len; //node中有3个成员变量x,y,l ...
- win10用命令net启动服务没权限解决办法
法一.右击cmd命令图标,以管理员身份运行即可. 或者 法二.打开cmd命令的位置->右击属性->高级->勾上"以管理员身份运行"->确定.
- 安卓和iOS移动APP开发设计应该考虑哪些问题
应该考虑哪些问题 现在用移动设备上网的用户越来越多,企业也可以从移动APP端挖掘潜在用户,想要设计好一款移动APP,我们需要考虑哪几个问题呢? 首先 我们应该先确认清楚企业的移动互联网战略目标是什么? ...