Clojureの学習パート2:基本構文
この次の部分では、基本的なクロジュールの構文と操作について説明します.我々は生産的にする必要があるすべての基本を学びます.
式
クロジュールは2種類の構造を持つ.リテラルと操作.
リテラルは、数字、文字列、ベクトルなどのような日常的なデータ構造です.
操作は次のようになります.
操作例
フロー
Clojureは我々の人生をより簡単にするいくつかの基本的な制御フロー演算子を持っています.最も基本的なものの上に行きましょう.
if
With
if式の構造
ドゥ
With
時
With
BooleansとNIL
がある
値が
命名
私たちは
コードを書く方法を示す小さな運動をしましょう.
次のJavaコードをイメージしましょう.
式
クロジュールは2種類の構造を持つ.リテラルと操作.
リテラルは、数字、文字列、ベクトルなどのような日常的なデータ構造です.
1
"awesome string"
["vector" "of" "awesome" "strings"]
操作は、あなたの毎日のパンと水です.閉じるこの動画はお気に入りから削除されています.操作は次のようになります.
(operator operand1 operand2 operand3 ... operandN)
ここで重要なのは、クロージャがオペランドを分離するために空白を使うことです.操作例
(+ 40 2)
;=> 42
(- 50 8)
;=> 42
(str "Contact" " these " "strings")
;=> "Contact these strings"
フロー
Clojureは我々の人生をより簡単にするいくつかの基本的な制御フロー演算子を持っています.最も基本的なものの上に行きましょう.
if
With
if
あなたのコードの条件を行うことができます.if式の構造
(if boolean
then
else)
したがって、ここでの基本的な例は次のようになります.(if true
"Clojure seems awesome."
"Clojure seems like a lot.")
;=> "Clojure seems awesome."
ドゥ
With
do
チェーンに複数の式を1つにすることができます.(if true
(do (println "Clojure seems awesome.")
(println "And more awesome with do."))
"Clojure seems like a lot.")
;Clojure seems awesome.
;And more awesome with do.
時
With
when
あなたの組み合わせがありますif
and do
. あなたは持っていないelse
オペランドTHO(when true
(println "Clojure seems awesome.")
(println "And more awesome with when."))
;Clojure seems awesome.
;And more awesome with when.
BooleansとNIL
がある
true
and false
Clojureにおけるブール値nil
値が表示されません.値が
nil
with nil?
エクスプレッション.(nil? 0)
;=> false
(nil? nil)
;=> true
両方nil
and false
論理的な虚偽のために立って、他のすべての値はtrueと見なされます.(if "random string"
"this random string is true")
;=> "this random string is true"
(if nil
"nil is true"
"nil is false")
;=> "nil is false"
等値演算子=
(= 1 1)
;=> true
(= 1 2)
;=> false
クロジュールもand
and or
演算子それらの行為は他の言語と異なっていた.or
最初の真値または最後の値を返します.例:(or false nil "this will be returned")
;=> "this will be returned"
(or (= 0 1) (= "a" "b"))
;=> false
(or nil)
;=> nil
and
最初のfalsey値、あるいは最後の真の値を返します(偽の値がない場合)(and "a" "b")
;=> "b"
(and "a" nil false)
;=> nil
命名
私たちは
def
クロジュールに値を付ける.(def shopping-list
["Vodka" "Apple jiuce" "Red Bull"])
shopping-list
;=> ["Vodka" "Apple juice" "Red Bull"]
このような変数を定義するのは、あなたが複数の代入を1つの名前にするとき、ちょっと奇妙で混乱しているようです.これは、再考されなければならなくて、違って行われるべき何かです.コードを書く方法を示す小さな運動をしましょう.
次のJavaコードをイメージしましょう.
level = "info";
message = "message";
if (level.equals("info")) {
message = message + " (FYI)");
} else {
message = message + " (OMG)";
}
これは完全にコードのコードです.私の最初の本能は、こうでした.(def level "info")
(def message "message")
(if (= level "info")
(def message (str message " (FYI)"))
(def message (str message " (OMG)")))
あなたがそれについて考えるならばdefn
新しい演算子を定義するにはあなたはこのようなことができます.(defn error
[message level]
(str message
(if (= level "info")
" (FYI)"
" (OMG)")))
(error "message" "info")
;=> "message (FYI)"
あなたはこのようなコンテンツを得るために私に従うことができます.Reference
この問題について(Clojureの学習パート2:基本構文), 我々は、より多くの情報をここで見つけました https://dev.to/pavel_polivka/learning-clojure-part-2-basic-syntax-4k97テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol