zoukankan      html  css  js  c++  java
  • Scala基础(1)

    Scala基础语法

      声明与定义:

        val,常量声明                       val  x:T(把x声明成一个类型为T的常量)  x是变量的名字,T是变量的类型          val  x:T=e    x是常量,值是不可以改变的

        var,变量声明       var  x:T  (和val一样)  var x:T=e  x是变量,值是可以改变的

        类型省略(默认类型)          val x=e   var x=e

        声明省略(连续声明)          val x1,x2,x3  等价于 val x1; val x2; val x3                  var x1,x2,x3:T=e 等价于 var xn:T=e

        def,函数声明           def abc(xn:T):T*=e     def定义函数,abc函数名,xn参数,T参数类型,后面的T返回值类型

        无参函数         def adder()=e

        type类型声明

        class,类声明

        object,对象声明

    Scala有哪些类型?

        1.数值型:Int,Long,Short,Byte

        2.浮点型:Double,Float

        3.布尔型:Boolean

        4.字符型:char , String Char序列

        除了String归于java.lang包外,其他基本类型均是scala包的成员

        Int等基本类型的全名是scala.Int,但是包scala同java.long的所有成员都能自动引用,因为能再实际使用时候简化

        

    Scala操作符运算:

        使用中缀数学操作符+、-、*、/、%并产生对应的数值结果

        使用比较操作符<、>、>=、=<并产生布尔值结果

        使用逻辑操作符&&、||并产生布尔值结果

        使用对等操作符==、!=并产生布尔值结果

        使用位操作符&、|、^、~并产生数值结果

          

        实际上,ScaLa没有任何操作符,所有的操作符运算都是对方法(函数)的调用

        如1+2实际上是调用了.+() 这个方法1.+(2)

        在具体的调用中,调用+实际上包含了+的各种类型参数的重载,而无需额外定义                          1+2就是两个Int类型相加,1+1.2就是Int+Double

        操作符具有优先级                1+5*4=21 (1+5)*4=24

        操作符优先级一般如下:

          特殊字符 > */% > +- > : > =!> <> > & > ^ > | > 其他字母 > 赋值操作符    

        scala支持如“***”“+-+”之类的操作符重载,考虑其优先级一般以第一个符号为主

        值得注意的是,形如“*=”的操作符重载,会被认为是赋值操作符而具有最低的优先级

          m *= n+5 等价于 m *= (n+5)

    语句结束:

        Scala是基于行的语言,分号和换行均可作为语句的结束

        判定换行是否为语句的结束有以下规则:

          换行前的符号是一个语句的结束:常量、标识符、保留字及其他分隔符

          换行后的符号是一个语句的开始:除部分分隔符及保留字外的所有符号

          符号处在一个允许多语句的区域:Scala源文件中,匹配的{与}间

        

        换行不作为语句的结束:

          匹配的(与)之间,[与]之间

          XML模式下的区域

          case符号及匹配的=>符号之间

          if、while、for、type是允许跨两行的合法语句

    通常的Scala编写规范:

        代码格式化,不同段落、不同文件的Scala应保持相同的语法格式

        层次间缩进,避免长语句

        合理的命名;

          短作用域短名字,长作用域长名字

          通用缩写,词意与目的相近,莫要使用add来命名一个做减法的函数

          避免不同用途时重用名字

          避免用反引号声明保留字

          有返回值的方法(函数)用可描述的名字

        利用{}创建复合表达式

        及时注释 

  • 相关阅读:
    leetcode 309. Best Time to Buy and Sell Stock with Cooldown
    leetcode 714. Best Time to Buy and Sell Stock with Transaction Fee
    leetcode 32. Longest Valid Parentheses
    leetcode 224. Basic Calculator
    leetcode 540. Single Element in a Sorted Array
    leetcode 109. Convert Sorted List to Binary Search Tree
    leetcode 3. Longest Substring Without Repeating Characters
    leetcode 84. Largest Rectangle in Histogram
    leetcode 338. Counting Bits
    git教程之回到过去,版本对比
  • 原文地址:https://www.cnblogs.com/fishperson/p/10527064.html
Copyright © 2011-2022 走看看