二、Scala基础

1、变量:三种修饰符 -> ①val 常亮②var 变量③lazy val 惰性变量求值

2、类型

3、代码块 Block

{exp1;exp2}

{

exp1

exp2

}

4、函数

def functionName(param : paramType) : ReturnType = {

//function body : expressions

}

5、if表达式

if() val A else val B

6、for comprehension

用于循环的推导式

for {

x -> xs

y = x + 1

if (y > 0)

} yield y

7、match表达式

exp match {

case p1 => val 1

case p2 => val 2

……

case_ => val n

}

练习:

1、取得下面字符串中的汉字。
1477489369 0:0:0:0:0:0:0:1 cd60e43df3df2b490c517fff502f0684 3 1da6058be377160b14230637662921d7 (0,0,0,5,0,0,0,0) (SEARCH://search-fenzhi&desc-毛衣-male/?productList%5B1%5D%3D100129971676) NOCHANNEL QD_yyb R_84f63572b236e9e49f2e2e5cf885eb94 tag_sea

 object ScalaTest1 {

   def getChineseChar(str: String): Unit = {
val regex = "[\u4e00-\u9fa5]".r
var l = regex findAllIn str toList for {
s <- l
} yield (print(s))
} def main(args: Array[String]): Unit = {
val str1: String = "1477489369"
val str2: String = "0:0:0:0:0:0:0:1"
val str3: String = "cd60e43df3df2b490c517fff502f0684"
val str4: String = "3"
val str5: String = "1da6058be377160b14230637662921d7"
val str6: String = "(0,0,0,5,0,0,0,0)"
val str7: String = "(SEARCH://search-fenzhi&desc-毛衣-male/?productList%5B1%5D%3D100129971676)"
val str8: String = "NOCHANNEL"
val str9: String = "QD_yyb"
val str10: String = "R_84f63572b236e9e49f2e2e5cf885eb94"
val str11: String = "tag_sea" val list = str1 :: str2 :: str3 :: str4 :: str5 :: str6 :: str7 :: str8 :: str9 :: str10 :: str11 :: Nil for {
s <- list
} getChineseChar(s)
}
}
 

  

2、将下面的单词和数字按列对齐并打印到控制台。
毛衣 1
毛衣毛衣 2
毛衣毛衣毛衣 3
毛衣毛衣毛衣毛衣 4
毛衣毛衣毛衣毛衣毛衣 5
毛衣毛衣毛衣毛衣毛衣毛衣 6
毛衣毛衣毛衣毛衣毛衣毛衣毛衣 7
毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣 8
毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣 9
毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣毛衣 10

 object ScalaTest2 {
def forScala(n: Int): Unit =
for (i <- 1 to n) {
var str = new StringBuilder()
for (j <- 1 to i) {
str.append("毛衣")
}
str.append('\t')
str.append(i)
str.append('\n') print(str)
} def main(args: Array[String]): Unit = {
forScala(10)
}
}

Scala学习(二)的更多相关文章

  1. Scala学习(二)--- 控制结构和函数

    控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句 ...

  2. Scala学习二十二——定界延续

    一.本章要点 延续让你可以回到程序执行当中之前的某个点; 可以在shift块中捕获延续 延续函数一直延展到包含它的reset块的尾部 延续所谓的”余下的运算“,从包含shift的表达式开始,到包含它的 ...

  3. Scala学习二十一——隐式转换和隐式参数

    一.本章要点 隐式转换用于类型之间的转换 必须引入隐式转换,并确保它们可以以单个标识符的形式出现在当前作用域 隐式参数列表会要求指定类型的对象.它们可以从当前作用域中以单个标识符定义的隐式对象的获取, ...

  4. Scala学习二十——Actor

    一.本章要点 每个actor都要扩展Actor类并提供act方法 要往actor发送消息,可以用actor!message 消息发送是异步的:”发完就忘“ 要接受消息,actor可以调用receive ...

  5. Scala学习二——控制结构和函数

    一.if表达式有值 val s=if(x>0) 1 else -1,相当于Java中x>0?1:-1(不过不拿呢个在?:中插入语句),而且Scala中可以用混合类型(如if (x>0 ...

  6. Scala学习(二)练习

    Scala控制结构和函数&练习 1. 一个数字如果为正数,则它的signum为1:如果是负数,则signum为-1:如果为0,则signum为0:编写一个函数来计算这个值 简单逻辑判断: 测试 ...

  7. SpringCloud学习(二):微服务入门实战项目搭建

    一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...

  8. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...

  9. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  10. Scala学习资源

    Scala学习资源: Scala官方网站:http://www.scala-lang.org/ Scala github:https://github.com/scala/scala Twitter ...

随机推荐

  1. 利用反射+AOP,封装Basehandler

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...

  2. PHP Problem with the SSL CA cert (path? access rights?)

    1.php使用curl模块报错问题 开发遇到问题,直接使用系统的curl命令正常,使用php的curl模块报错 错误:PHP Problem with the SSL CA cert (path? a ...

  3. adnroid 监听软键盘的显隐

    首先注明出处,我只是想做个笔记:http://www.jb51.net/article/64820.htm 第一眼看到的时候,觉得不太可靠,因为之前都是看到这样处理的,根据监听一个根布局的size,可 ...

  4. JAVA 冒泡算法

    每种语言都有冒泡JAVA实现如下: public static void main(String args[]){ System.out.println("Start"); int ...

  5. 剑指offer六:反转链表

    输入一个链表,反转链表后,输出链表的所有元素 public class ListNode { int val; ListNode next = null; ListNode(int val) { th ...

  6. godep 包管理工具

    godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这 ...

  7. php : 基础(6)

    数组 数组基础 含义: 数组就是一系列数据的集合体,他们按设定的顺序排列为一个"链的形状". 注意:php中的数组单元的顺序,跟下标无关! 数组定义(赋值): $arr1 = ar ...

  8. C++Primer 5th 练习 12.19

    这阵子真是太忙了, 连续做了四个课设. 当然这并不能作为好久没写博客的借口, 没写博客的主要原因只有一个: 懒. 最近又开始回顾C++的语法与特性(据说C++就是一门需要反复回顾的语言),以及学习C+ ...

  9. getElementsByClassName 兼容性

    getElementsByClassName是html5 新增加的一个类名.该方法可以让我们通过class属性中的类名来访问元素.不过该方法比较新,某些DOM树还没有,因此在使用中要当心.由于只有较新 ...

  10. 浅谈一下关于使用css3来制作圆环进度条

    最近PC端项目要做一个这样的页面出来,其他的都很简单,关键在于百分比的圆环效果.我最初打算是直接使用canvas来实现的,因为canvas实现一个圆是很简便的. 下面贴出canvas实现圆环的代码,有 ...