zoukankan      html  css  js  c++  java
  • scala(一)

    scala

    1.字符串

    1.1传值字符串

    object ScalaString {
        def main(args: Array[String]): Unit = {
            // 传值字符串(格式化字符串)
            printf("name=%s
    ", name)
        }
    }
    

    1.2插值字符串

    object ScalaString {
        def main(args: Array[String]): Unit = {
            // 插值字符串
            // 将变量值插入到字符串
            println(s"name=${name}")
        }
    }
    

    1.3多行字符串

    object ScalaString {
        def main(args: Array[String]): Unit = {
            // 多行格式化字符串
            // 在封装JSON或SQL时比较常用
            // | 默认顶格符
            println(
                        s"""
                          | Hello
                          | ${name}
            """.stripMargin)
    }
    }
    
    插值字符串与多行字符串结合使用打印json格式
      def main(args: Array[String]): Unit = {
        val name = "zhangsan"
        val password = "123456"
        val json =
          s"""
             |{"username=":"${name}","password=:"${password}"}
             |""".stripMargin
        print(json)
      }
    

    2.输入输出

    2.1输入

    控制台输入
    object ScalaIn {
        def main(args: Array[String]): Unit = {
            // 标准化屏幕输入
            val age : Int = scala.io.StdIn.readInt()
            println(age)
    }
    }
    
    从文件中获取输入
    Idea中的基准路径在项目的根目录下
      def main(args: Array[String]): Unit = {
        // 请注意文件路径的位置
        val source: BufferedSource = scala.io.Source.fromFile("./data")
        while (source.hasNext){
          print(source.next())
          
        }
      }
    

    3.数据类型

    3.1类型转换问题

    常量计算在编译时,√
    val c : Char = 'A' + 1
    println(c)
    变量计算在运行时,  编译器不知道类型,所以先转成INT 之后INT转为char 报错 ×
    val b :Byte = 'A'
    val c :Char = b+1
    printf(c) 
    

    4.运算符

    val a = new String("abc")
    val b = new String("abc")
    
    println(a == b)         比较字符串内容
    println(a.equals(b))    比较字符串内容  但a不能为空
    println(a.eq(b))        比较地址值
    
    

    5.流程控制

    Scala语言中没有三元运算符的,使用if分支判断来代替三元运算符
    

    5.1循环控制

    for循环
    for ( 循环变量 <- 数据集 ) {
        循环体
    }
    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            for ( i <- Range(1,5) ) { // 范围集合   Range的第二个参数(until)不包含  即不包含5
                println("i = " + i )
            }
            for ( i <- 1 to 5 ) { // 包含5
                println("i = " + i )
            }
            for ( i <- 1 until 5 ) { // 不包含5
                println("i = " + i )
            }
        }
    }
    

    5.2循环步长

    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            for ( i <- Range(1,5,2) ) {
                println("i = " + i )
            }
            for ( i <- 1 to 5 by 2 ) {
                println("i = " + i )
            }
     for ( i <- Range(5, 1, -1) ) {
                println(i)
            }
        }
    }
    
    
            val range = 1 to 5 by 2
            val range = 1 until 5 by 2
            val range = Range(1, 5, 2)
    
            for ( i : Int <- range ) {
                println(i)
           }
           for ( i <- range ) {
                println(i)
            }
    

    5.3循环嵌套

    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            for ( i <- Range(1,5); j <- Range(1,4) ) {
                println("i = " + i + ",j = " + j )
            }
            for ( i <- Range(1,5) ) {
                for ( j <- Range(1,4) ) {
                    println("i = " + i + ",j = " + j )
                }
            }
        }
    }
    
    引入变量
    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            for ( i <- Range(1,5); j = i - 1 ) {
                println("j = " + j )
            }
        }
    }
    
    

    5.4循环返回值

    如果希望for循环表达式的返回值有具体的值,需要使用关键字yield
    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            val result = for ( i <- Range(1,5) ) yield {
                i * 2
            }
            println(result)
        }
    }
    
    输出结果:Vector(2, 4, 6, 8)
    

    5.5循环中断

    scala中break 采用抛出异常的方式来结束循环,为了程序的正常运行,需要外面使用breakable处理异常
    import scala.util.control.Breaks._
    object ScalaLoop {
        def main(args: Array[String]): Unit = {
            breakable {
                for ( i <- 1 to 5 ) {
                    if ( i == 3 ) {
                      break
                    }
                    println(i)
                }
            }
        }
    }
    
    
  • 相关阅读:
    系统管理命令之tty
    系统管理命令之id
    idea中使用junit测试时使用Scanner类无法正常测试
    002-字段不为null
    java8中接口中的default方法
    java之接口适配器
    java之对象适配器
    java之类适配器
    java之多态(六)
    java之多态(五)
  • 原文地址:https://www.cnblogs.com/xiao-bu/p/14782777.html
Copyright © 2011-2022 走看看