由于笔记太多,分为了几部分,进入我的博客,查看其它的笔记

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(一)的更多相关文章

  1. jdb调试scala代码的简单介绍

    在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...

  2. scala练习题1 基础知识

    1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然 ...

  3. 牛顿法求平方根 scala

    你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...

  4. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  5. Scala化规则引擎

    1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...

  6. Scala快速概览

    IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...

  7. Scala Macros - scalamela 1.x,inline-meta annotations

    在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...

  8. Scala Macros - 元编程 Metaprogramming with Def Macros

    Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...

  9. Scala Reflection - Mirrors,ClassTag,TypeTag and WeakTypeTag

    反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(express ...

  10. Scala For Java的一些参考

          变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...

随机推荐

  1. 浅谈css中单位px和em,rem的区别-转载

    px是你屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽.比例有可能会不同.假设:你现在用的显示器上1px宽=1毫米,但我用的显示器1px宽=两毫米,那么你定义一个div ...

  2. Xamarin XAML语言教程使用Xamarin Studio创建XAML(二)

    Xamarin XAML语言教程使用Xamarin Studio创建XAML(二) 使用Xamarin Studio创建XAML Xamarin Studio和Visual Studio创建XAML文 ...

  3. 开始使用ansible

    ansible是一个设计巧妙,功能强大,安全,使用简单的IT自动化运维工具.它可以实现统一配置管理,持续部署,流程编排等. 目前控制主机必须是linux,被控制主机可以是linux,类UNIX和win ...

  4. flowJS源码个人分析

    刚刚在腾讯云技术社区前端专栏中看到一篇腾讯高级前端工程师写的<一个只有99行代码的js流程框架>觉得很屌,感觉是将后台的简单的工作流思维搬到了前端js实现,本人不才在这里拜读解析下源码,而 ...

  5. 用ElasticSearch搭建自己的搜索和分析引擎

    作者:robben,腾讯高级工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 导语:互联网产品中的检索功能随处可见.当你的项目规模是百度大搜|商搜或者微信公众号搜索这种体量的时候 ...

  6. MongoDB数据库安装及配置环境终极教程(windows10系统)

    本文是笔者花时间踩坑踩生气了写出来的!转载请注明出处@http://www.cnblogs.com/tim100/!请尊重我的劳动成果!谢谢! 今天,给大家说说在windows10系统下MongoDB ...

  7. Windows文件路径转换为java中可识别的文件路径的转义方法,(另附转义多种格式)

    ps:欢迎加qq好友:2318645572,交流学习 一:路径转化 Windows中的文件路径格式为 D:\eclipse\apache-tomcat-7.0.67\wtpwebapps\... Ja ...

  8. 【2017-04-20】Sql字符串注入式攻击与防御

    一.攻击 所谓sql字符串注入式攻击就是在用户输入界面输入一串sql语句,来改变C#中连接数据库要执行的sql语句 通过你写的程序,直接来执行我想要执行的sql语句 例如:在这么一个程序中,sname ...

  9. 开始奇妙的DP之旅

    铭记各位大佬教导,开始看一些很迷的动态规划,那就从比较典型的01背包开始吧,想想还是从比较简单的导弹拦截开始吧,说简单都是骗人的,还是看采药吧. 一.动态规划 刚听到动态规划这个东西,据HLT大佬所言 ...

  10. WebGIS开源解决方案之开发环境搭建(四)

    续前几篇文章,前面陆续介绍了开源GIS服务器Geoserver,开源数据库Postpresql以及开源前端udig的安装和基本使用. WebGIS前端开发,可以选择arcgis for javascr ...