scala主要分爲Keywords/reserved symbols正則表達式
即關鍵字符號 和 被保留的 符號express
Keywordsapp
// Keywords <- // Used on for-comprehensions, to separate pattern from generator => // Used for function types, function literals and import renaming
咱們在前面的博客對<- 和 =>有所說起,這裏在簡單描述一下。ide
<- 用於for邏輯內部 如:函數
for (p <- range if p > 5) yield p
=> 有三個比較常見的地方spa
1. 導入中用到scala
// 1. import import scala.{ Predef => _, _ } // 排除, 除了 Predef的其餘全部類被導入
2. for 邏輯內部用到ip
// 2. for args.foreach ( arg =>greeting += (arg + " ")) //for 章節中提到
3. match 邏輯內部用到字符串
// 3. match case var a = 1; a match { case 1 => 2 //a==1 則返回2 case 2 => 5 }
Reservedgenerator
// Reserved ( ) // Delimit expressions and parameters [ ] // Delimit type parameters { } // Delimit blocks . // Method call and path separator // /* */ // Comments # // Used in type notations : // Type ascription or context bounds <: >: <% // Upper, lower and view bounds " """ // Strings ' // Indicate symbols and characters @ // Annotations and variable binding on pattern matching ` // Denote constant or enable arbitrary identifiers , // Parameter separator ; // Statement separator _* // vararg expansion _ // Many different meanings
譯文:
被保留字
( ) // 定界表達式和參數 [ ] // 定界參數類型 { } // 定界塊 . // 方法調用或者 路徑分離 // /* */ // 註釋 # // 被用於type標記 : // Type 歸屬或者 上下文邊界 <: >: <% // 上升類型 降低類型 以及視圖邊界 " """ // 字符串 ' // 標識符號以及字符 @ // 在正則表達式之上的註解和綁定 ` // 表示常數或啓用任意標識符 , // 參數分隔器 ; // 語句分隔器 _* // 可變參數的擴展 _ // 不僅有一個意思
<:舉例
T <: A //T是A的子類型(subtype)
一個包括大部分符號的例子
package demo.scala import scala._ //導入scala包下全部類 object symbolDemo { def sdemo(x : Int) : String= { var sl : List[Int] = List(1,2); "" //字符串 當前函數的返回值 } abstract class NativeType{ type JvmType @transient val tag: List[JvmType] } }
有多個含義的 -
import scala._ // Wild card -- all of Scala is imported import scala.{ Predef => _, _ } // Exclusion, everything except Predef def f[M[_]] // Higher kinded type parameter def f(m: M[_]) // Existential type _ + _ // Anonymous function placeholder parameter m _ // Eta expansion of method into method value m(_) // Partial function application _ => 5 // Discarded parameter case _ => // Wild card pattern -- matches anything f(xs: _*) // Sequence xs is passed as multiple parameters to f(ys: T*) case Seq(xs @ _*) // Identifier xs is bound to the whole matched sequence
譯文:
import scala._ // 通配符 導入全部的scala類 import scala.{ Predef => _, _ } // 導入除Predef的全部類 def f[M[_]] // Higher kinded type 的參數 (Higher kinded type 特有的一種類型) def f(m: M[_]) // Existential type (一種類型) _ + _ // 匿名函數的參數佔位符 m _ // Eta expansion of method into method value m(_) // 部分函數應用 _ => 5 // 丟棄參數 case _ => // 通配符 f(xs: _*) // 序列xs是傳遞多個參數到 f(ys: T*) case Seq(xs @ _*) // 標識符的xs被綁定到整個匹配的序列
好吧,寫這章讓我有點痛苦,下一章繼續更新