• scala(一)


    1、变量和常量

    scala> var a:String="hello"
    a: String = hello
    
    scala> var a="ji"
    a: String = ji
    
    scala> var a=1
    a: Int = 1
    
    scala> var a:Int=1--->可以定义变量的时候定义类型
    a: Int = 1
    
    scala> var a:Int=2
    a: Int = 2
    
    scala> var a="hello"
    a: String = hello
    
    scala> var a:String="world"
    a: String = world
    
    scala> var a:Integer=22---->integer兼容int类型
    a: Integer = 22
    
    scala> val a = 20;---->常量,不可更改
    a: Int = 20
    
    scala> a=100
    <console>:12: error: reassignment to val
           a=100
            ^
    
    scala> var  a = 10;---->变量可更改
    a: Int = 10
    
    scala> a = 200
    a: Int = 200
    
    scala> 1 to 10
    res3: scala.collection.immutable.Range.Inclusive = Range 1 to 10
    
    scala> var a = 1 to 10--->定义一个数组类型
    a: scala.collection.immutable.Range.Inclusive = Range 1 to 10
    --->类型转换
    scala> 1.to
    to               toByte   toDegrees   toFloat       toInt    toOctalString   toShort
    toBinaryString   toChar   toDouble    toHexString   toLong   toRadians       toString
    
    scala> 1.tostring
    <console>:12: error: value tostring is not a member of Int
           1.tostring
             ^
    
    scala> 1.Tostring
    <console>:12: error: value Tostring is not a member of Int
           1.Tostring
             ^
    
    scala> 1.toString
    res6: String = 1
    
    scala> 1.toDouble
    res7: Double = 1.0
    
    scala> 1.toByte
    res8: Byte = 1
    

    2、操作符重载

    scala> 1+2
    res9: Int = 3
    
    scala> 1.+(2)--->通过.调用方法,括号里面相当于调用的加法方法的参数
    res10: Int = 3
    
    scala> 1.-(2)
    res11: Int = -1
    
    scala> 1.*(2)
    res12: Int = 2
    
    scala> 1.%(2)
    res13: Int = 1
    
    scala> 1.to(10)
    res14: scala.collection.immutable.Range.Inclusive = Range 1 to 10

    3、scala没有++,–,只有+=

    scala> var a = 100;
    a: Int = 100
    
    scala> a+=1;
    
    scala> a
    res25: Int = 101
    
    scala> a+=100;
    
    scala> a
    res27: Int = 201

    4、导入包

    scala> import scala.math._
    import scala.math._       --->下划线表示通配符
    scala> min(1,2)---->Scala函数没有对象,方法有对象,方法通过对象调用
    res29: Int = 1
    
    
    scala> 1.toString  --->对于没有参数的方法可以省略括号
    res30: String = 1
    
    scala> 1 toString  --->运算符的方式
    <console>:15: warning: postfix operator toString should be enabled
    by making the implicit value scala.language.postfixOps visible.
    This can be achieved by adding the import clause 'import scala.language.postfixOps'
    or by setting the compiler option -language:postfixOps.
    See the Scaladoc for value scala.language.postfixOps for a discussion
    why the feature should be explicitly enabled.
           1 toString
             ^
    res31: String = 1
    
    
    scala> 1.toString()    --->方法的形式
    res32: String = 1

    5、apply方法

    scala> "hello"(0)  --->隐含调用apply方法
    res35: Char = h
    
    scala> "hello".apply(0)---->等价于上面那个
    res36: Char = h
    
    scala> "hello".apply(1)
    res37: Char = e
    
    scala> val a = "hello"
    a: String = hello
    
    scala> a(0)
    res38: Char = h

    6、条件表达式

    scala> var x = 3;
    x: Int = 3
    
    scala> var s = 0;
    s: Int = 0
    
    scala> if (x>1) s=1 else s =  -1;
    
    --->等价于上面的表达式
    scala> s
    res43: Int = 1
    
    scala> var b = if(x>1) 1 else -1; ---->scala的条件表达式都是有值的
    b: Int = 1
    
    scala> val c = if(x>1) 1 else "hello"
    c: Any = 1  ---->any类型是int类型和string类型的父类
    scala>

    6、类型转换

    scala> "1000". toInt
    res45: Int = 1000

    7、unit类(赋值语句没有值,用unit类表示)

    scala> val y = (s=1);
    y: Unit = ()
    scala> val y:Unit=();  ---->可以声明为unit类型,相当于void
    y: Unit = ()

    8、Scala没有switch语句

    scala> if(x>0) 1  --->如何没有定义类型,会自动分配一个anyval类型
    res46: AnyVal = 1
    
    

    9、进入粘贴模式(ctr+d结束粘贴模式)

    scala> :paste
    // Entering paste mode (ctrl-D to finish)
    
    if(x>1){1}
    else -1
    
    // Exiting paste mode, now interpreting.
    
    res48: Int = 1
    
    scala>

    10、Java—->.java–javac—->.class——>程序
    打印输出

    scala> print(1)
    1
    scala> println(2)
    2
    
    scala> printf("name is %s, age=%d","tong",12)
    name is tong, age=12
    scala>
    
    
    从终端读取
    scala> val name = readLine("请输入密码:");
    <console>:14: warning: method readLine in trait DeprecatedPredef is deprecated (since 2.11.0): use the method in `scala.io.StdIn`
           val name = readLine("请输入密码:");
                      ^
    请输入密码:name: String = 12323
    
    scala>
    欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
  • 相关阅读:
    《Java编程思想第四版》附录 B 对比 C++和 Java
    《Java编程思想第四版》附录 C Java 编程规则
    《尚学堂_史上最易懂的设计模式视频》--章节1 责任链模式-- 过滤器模式
    《Effective Java中文版(第2版).pdf》-笔记
    javascript面试--网络收集
    眼睛问题
    网易云课堂《JS原创视频教程-知识点类》
    定时刷新页面SetInterval 和setTimeout -时间间隔可以动态设定
    MSSQL无法启动-原来电脑登录密码改了,重启后要设置
    Thymeleaf--:fragment
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10327115.html
Copyright © 2020-2023  润新知