【scala初學】scala symbol 符號 -1

 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被綁定到整個匹配的序列

好吧,寫這章讓我有點痛苦,下一章繼續更新

相關文章
相關標籤/搜索