API公式コードを読む(2)今回からはSocket.ioのお話に入っていく。for文のin,ofに関しては詳しく説明してみる。//以下は別の回でなんとたったこれだけを徹底的にやっていく。JavaScript全般の勉強にもなるため自動売買のプログラムやAPIとは関係なくなるが私なりに解説していくので理解えもらいたい。今回はどちらかというと初心者を脱出する前ぐらいの人向けの記事となるのでご了承願いたい。.onすでに最初の行が意味不明な人も多いだろう。}まず先頭のsocketは前回解説したので省略するとして次のonメソッドが呼ばれている。socketで定義したところに「onを実行してね!引数はAとBだよ!」と言っている。この行ではonにconnectを渡して単純に接続を確立する処理だ。接続するときはコレと決められている。それに関してはこれ以上説明は必要ない。(このconnectも定義されており勝手に変更などは出来ない)2020/03/15追記:onは厳密にはサーバーからのイベントを待ち受ける「受信」のメソッドだ。次回イベントを発火する「送信」側(emit)を説明するので頭の片隅にonが受信であることを意識えおく。構文が少し難しい点と第二引数は各自で変わるので説明していく。)という構造なっているだけだ。「引数Aが"connect"なのは分かる。{}になってないか?引数なのこれ?」最初はこういう思考になるだろう。これはアロー関数というJavaScriptの概念だ。引数に関数を渡している。アロー関数から覚えておこう。訳あってfunction定義だと不便じゃないかということで出来た。通常のfunction定義はこうだ。//ここになにか処理}と書いても良くなったと考えておけばOKで、どちらもほぼ同じ意味だ。左側のカッコの中にはこの関数の引数を、右側のカッコの中には処理を書くことになるが、重要なのは「この関数自体を纏めて引数としてonに放り込んでいる」というところだ。お願いね!」と言っている。その処理の中身がこの続きに入っている。空白になっているので引数は渡さないで次に移行する。わからない人も多いと思う。その場合は必死でアロー関数やコールバック関数の意味を調べてほしい。一度言うがonには引数として関数を渡しているという感覚が理解できればOKだ(これをコールバック関数という)次のfor文さて、すでに混乱したかと思うが次もちょっと混乱する。準備はいいか?だめか。}さすがにfor文がわからない場合は初心者すぎるので他を当たって欲しい。実は説明するのは簡単なのだが、なぜ混乱すると書いたかというとこの書式にはof以外にもinというのがあるからだ。なっていることが多い。ここは()内がシンプルにまとまっているまずpublicChannelsは#3で説明した定数の配列だ。実際には["lightning_executions_BTC_JPY"]コレ1つしか入っていない。constのchに入れて中の処理を実行するよ!という意味だ。i++を使うよりもシンプルで分かりやすい記述になっている。別のコードを作って実行結果を見てみよう。console.log(a)}//実行結果BTCETHタンス預金さて、思ったより簡単だっただろうか?これはかなり使える。ofをやるならいずれ必ずinで躓くのでofの代わりにinを置いて実行してみよう。console.log(a)}//実行結果012実行結果が意味不明である。3つカウントしただけではないか。これは公式ドキュメントによると「列挙可能プロパティ」に対して繰り返すらしい。これはモノによって変わるのだが**配列の場合は要素番号、オブジェクトの場合はキー名**となる。これではピンとこないと思うのでオブジェクトをinでループしてみよう。北尾さんアーサーさん加納さん見事にキー名だけ表示された。値も取りたければasset[a]とすればOKだ。オブジェクトにオブ(of)はダメと、暗記しておこう。オブジェクトにオブはオブジェクション(反対)と覚えたらスマートかもしれない。応用編inとofにはいろいろなケースがあると思うが応用も見ておこう。}あくまで外側が配列なのでof。個人的によくみる形だ。}この場合はオブジェクトをループしているのでinだ。コメントにも記したが、こういう形式の場合はさらにforループが重なる事がよくあるので慣れておきたい。さいごにたった2行のコードでここまで徹底的にやったが、正直もっとやってもいい。覚えることは無限にある。仮想トイレプログラミングや仮想通貨のシステムトレードに関する情報を発信中。どんな情報を流しても詰まらないトイレ。謎の技術研究部とはプライバシーポリシーホーム(自動スクロールなし)ご意見、お問い合わせ。