apple swift言語の演算子の意味について [Xcode]

 前の続きなのですが、スクリプト言語だとどうしても避けられない解説説明に演算子が有ります。これまで別のブログでも言って来たつもりなのですが、中々どうしてあれからそれらしき説明を他のページから探し出す事が出来ないところを見ると、等閑(なおざり)に進んでいるのかなと思わざるを得ません。ですが、swiftはこの演算子の使い方の意味さえ分かれば、大した迷う事の無い言語と踏みました。ですので避けて通れないところです。参考例としてまず PHP を挙げますが順番は大した意味は有りません。他にも ruby, python, js とか有ります。で PHP等のファイルは htmlの欠点を補うために作られたと筆者は思っているのですが、ウェブでは html は一般ユーザにも筒抜けの言語で、丸見えです。それでも良いかとは思いますけど、ユーザが悪意を持てば外部操作も出来る可能性を持っているので、一般には進められません。で構文なのですが<?php ?>でワンセットです。でもこれって他の言語でも形は違いますが使われています。< > の形。html ではこの中身はタグと呼ばれ、C, C++拡張系ではシステム側のヘッダーファイルがあったり、テンプレートの中身であったりと言語によって様々な名前で呼ばれますが、演算子は同じ命令をこなしているだけです。で、html, php ではファイルの先頭に来ますので、左は有りません。ここが味噌です。この説明が無いと違う事をしているように見えるだけです。中にはそんな事考えなくても分かるよ、と言うかも知れませんが、人間、環境が変って初めて偏見で物事を考えている事にやっと気付くものです。その時には後戻り出来ないくらい深い森に入り込んだ状態かも知れません。そう簡単には戻れません。時にそれを認知症とか呼びますが、認知症と言う病気がその人に取り付いたのではなく、言わば自業自得の結果だと筆者は思っています。なのでそうならないためにも、修正をしていかなくてはなりません。話を戻すと、< の次は?が来ます。xmlでもありますが、同じものです。この演算子は結構優先順位が高いものです。C では多項演算子にも使われます。命令としては文字通り問題が解決される迄読み進むです。なので最後の?にあたるまで、実行し続ける事になります。で、<?phpでphpに当たります。ここで初めてphpの領域に入ります。言ってみればある種の型に入るわけです。最後に < の対である > がありますので、結合してこの中身から抜け出ます。てな感じですが、演算子を一回で説明するのは言語上無理が有り、それ故多言語が生まれるわけですから、奥が深いんだと思います。演算子の性質は主メモリ上で行われ実行されると自動消滅してしまうものです。これを拡張したのがガベージ、自動解放機能です。他にも説明すると普通にphpの解説本になってしまうので止めますが、swift の場合、ファイルや文の最初に絶対と言える程、演算子は使われません。つまり、システム領域には入らないのです。ではどこの領域を使っているかと言うと、Xcode自身です。このアプリケーションの中身を見れば分かる通り、ライブラリからフレームワークからすべて入っています。アップ自体かなりもメモリを占有し、ちょっとしたLinuxのシステムディスク領域より有ります。なので、最初の演算子は必要ないわけです。また、文の終わりの ; は付けても直接のエラーになるわけでもありません。なくてもOKです。ならば手間を省けるわけです。さて、演算子を使っているところだけ見ていくと、数字の演算は C と変わり有りません。配列もその通りです。問題は関数とテンプレートの型とその継承とその配列構造体の参照のセットとなった時です。サンプルでは一行で表していますが、機械は迷わないかも知れませんがむしろ迷うのは人間の方です。


func 繰り返す<アイテム型>(アイテム: アイテム型, 回数: Int) -> [アイテム型]


通常型は最初に指定するものですが、これは最後に有りしかも[ ] で指定領域付きで、構造体参照で使われています。そんな事はしていないよ、と言うかも知れませんが今迄覚えて来た知識ではそのような表現になります。筆者はこれを見て、C++の機能を一行で行っていると見ているのですが、捉え方は人それぞれです。C++ファイルはその形を残したままインポートする事は可能なようですけれども、実際理解していれば上の形に置き替えた方が後々楽になる事は確かです。しかし、慣れないですねえ。型を構造体の配列で取る。なんて言われても、?


これらの表現は他にも多々有るので、しっかり理解しないとまたそこで考えてしまいます。多分機械ならエラーを吐き出して終了モードに突入するでしょうけれど、この立場は他ならぬ人間様と言うわけで情けない話です。こういうモードに陥った時は一旦やめて、頭のその中を初期化モードして、入れ物を作った方が良いようです。


なので、今回はここ迄。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。