スカラ演算子、ファイルと正規表現
その他
2019-10-01 11:51:15
訪問数: null
演算子
Thread.`yield`()
識別子の命名にバッククォートの添加(メソッド呼び出し時に、あなたはまた、競合を避けることができyield
Scalaのキーワードとして、ほかThread
の道を)
- インフィックス演算子(挿入演算子)、従来の方法の定義のような2つのパラメータと実際の方法。
a to b
実際a.to(b)
- 単項(単項演算子)
+, -, !, ~
フォー、オペレータの接頭辞として使用することができ-a
、実際にa.unary_
- 引数を置くことができれば、後置演算子であります
a identifier
- 代入演算子(代入演算子)
a operator= b
に相当しますa = a operator b
- 優先順位
* / %
> + -
> :
> < >
> ! =
> &
> ^
> |
> NOT演算子>代入演算子
- 中置演算子の優先順位の接尾辞
- 結合性
- すべての演算子は左結合され、除い:
- で、
:
オペレータの終わり
1 :: 2 :: Nil
実は 1 :: (2 :: Nil)
- 以下のようにバイナリ演算子実際の操作対象の適切な組み合わせは、第二の方法で
2 :: Nil
ありますNil.::(2)
- 代入演算子
- 場合
f(a,b,c)
あなたが呼び出すf
メソッドは関数ではありませんか、と等価ですf.apply(a,b,c)
f(a,b,c) = value
これは、と等価であるf.update(a,b,c, value)
と同様に、HashMap
値の割り当て、及び
- オブジェクトを構築するために使用される場合は、省略
new
キーを
- Extractorの抽出
- 含む
unapply
コンパニオン・オブジェクト・メソッドが、オブジェクト(例えば、抽出カスタム列名など)を抽出ように定義の任意のタイプに関連付けることができます
- 変数の定義を使用している場合
- パターンマッチングに使用されます
case class
自動偶発apply
とunapply
パターンマッチングのメソッドが自動的に呼び出されます
- 値の任意のシーケンスを抽出する含める必要が
unapplySeq
戻りをOption[Seq[Type]]
- 〜
注意、unapply
およびunapplySeq
パラメータの型と同じに定義されていません〜
- 動的な呼び出し動的な呼び出し
- 動的な型を定義します。
import scala.language.dynamics
- 受け継ぎます
scala.Dynamic
- Scalaのプロセス
foo.method("blah")
〜> foo.applyDynamic("method")("blah")
foo.method(x = 1, 2)
〜> foo.applyDynamicNamed("method")(("x", 1), ("", 2))
foo.field
〜> foo.selectDynamic("field")
foo.varia = 10
〜> foo.updateDynamic("varia")(10)
foo.arr(10) = 13
〜> foo.selectDynamic("arr").update(10, 13)
foo.arr(10)
〜> foo.applyDynamic("arr")(10)
ファイルと正規表現
- すべての行を読んで
Source.fromFile({name/java.io.File}).getLines.toArray
、リソースを閉じますsource.close
- 文字を直接反復ソースを読み込み
- 標準入力を読みます
scala.io.StdIn
- URLを読みます
Source.fromURL(url, "UTF-8")
- ストリングを読み取り
Source.fromString("Hello ww")
- Javaライブラリを使用して、バイナリファイルを読みます
- Javaライブラリを使用してファイルを書きます
- 連載
@SerialVerionUID(42L) class Name extends Serializable
Serializable
これはScalaであります trait
- 注釈は、デフォルトのUIDを省略することができます
- Scalaのセットは、シリアライズされ
- プロセス制御
- キットには、
scala.sys.process
暗黙の型変換がされ含まれているString
変換しますProcessBuilder
- シェルの実行
"ls -l".!
、!
実行ProcessBuilder
をブロックコマンドが終了するまでと終了コードを返します。
"ls -l".!!
それは次のようになります文字列として出力リターン
#|
パイプライン: ("ls -l" #| "grep scala").!
#>
出力をリダイレクトします。 ("ls -l" #> new File("out.txt")).!
#>>
追加:("ls -l" #>> new File("out.txt")).!
#<
入力のリダイレクト:
("grep scala" #< new File("out.txt")).!
("grep html" #< new URL("http://baidu.com")).!
- ディレクトリ/環境変数を実行するように設定
Process("ls -l", new File("../"), ("LANG", "en_US")).!
、環境変数(k, v)
のシーケンス
- ScalaはJavaプロジェクトでスクリプトを実行します
ScriptEngine engine = new ScriptEngineManager().getScriptEngineByName("scala")
- 正規表現
*ツールは、scala.util.matching.Regex
定期的なオブジェクトを構築* val pattern = "[0-9]+".r
- *など、引用符、エスケープの存在"""
、val pattern = """\s+[0-9]+\s+""".r
括弧を使用してグループを捕捉* val patternName = "([0-9]+) ([a-z]+)".r
*抽出として正準変数を定義するval pattern(num, item) = "123 abc"
(patternName
定義された正規名が一致しているとは)
*また、forループであってもよいです直接キャプチャグループ抽出された標準的な変数を使用します
転載: www.cnblogs.com/yuanzam/p/11614838.html