ハードウェアの気になるあれこれスマートフォン用の表示で見るハードウェアの気になるあれこれ技術的に興味のあることを調べて書いてくブログ。notebook上でのScalaコードの実行を確認した。Bootcampに取り組んでいく。Scala入門この章の目的は以下の通り。基本的なScalaのコードを書くことと、より応用的なScalaのコードを読めるようになることを目標にするこれまでScalaの学習でやってきたように、Bootcampに記載されているコードを実際に動かしながら学習を進めていく。かなりの部分が被るのでそのへんはサクッと見ていく。Scalaの理解とりあえず、"Scalaの理解"と題して書いてある部分は引用しておく。Scalaは共通のプログラミングパラダイムとはまた違ったプログラミング言語です。Chic*el、、発音しづらいが、それと同じくらいにChiselは良い上記のポイントはこの後Chiselを学べば明白になって来るが、今は基本的なScalaのコードを読むこと、そして書くことに集中しよう。val以前にもやっているのでポイントだけ。varは変数(mutable)valは定数(immutable)可能な限りvalを使うことを意識して学んでいこう最初の2つは知っていることだが、3番めの”valを使っていく”というのは意識してなかった。理由だが、以下のように書いてある。多くの場合、変数を再利用する機会を減らすことは、エラーを産んだりコードを複雑化するのを防ぐ方法である。Scalaの構造はこの練習をするのに向いているので、あなたが思っている以上に簡単なはずだ。true実行結果は以下のようになる。falseabcdefghijklmnopqrstuvwxyz条件式Scalaも他の言語同様に条件分岐を実装可能だ。done"が2回表示される以前のScalaの勉強でやったとおり、if式になるのでvalにも代入可能で、かつ評価すると値を返却する(これも意識してなかった。english"println(likelyCharactersSet)実行結果は以下のようにif式の条件が成立した場合の値がvalに入る。notebook実行時に変数の中身が表示された結果によるもの。メソッド(関数)ここも以前にみているのでポイントだけ抑えていく。このBootcampではメソッドを関数と呼称していくとのことなので以降のBootcampの記事でもそれに倣うことにする。関数のキーワードはdef引数は,で区切ってリストにして渡す。distance実行結果が上記のようになるのはjupyter-notebook上で関数の定義のみを実行しているから。関数のオーバーロードこの話はちゃんとは取り扱っていないので少し詳細に見ていく。以下はBootcampの記述を適当に訳したもの。同名の関数は単一の方法だけでなくそれ以上のものとして使うことが出来る。パラメータとそのパラメータの型によってその関数のシグネチャーが決まり、それがあるためにコンパイラは同名の関数があった場合でもどのバージョンの関数を呼ぶべきであるかを判断出来る。オーバーロード関数は避けるべきだ。紹介はしたけど使わないほうがいいって。書かなくても良かった気も。サンプルとしては以下のように同名の引数の型が異なるtimes2関数が定義されており、それに別の型を引数として与えることでエラーなく実行できるというサンプルになっている。この話はC++の関数のオーバーロードと同等と考えて良さそう。142つ目のStringが引数のtimes2関数では内部の処理にてStinrg型がInt型に変換された後、2倍されておりどちらの関数の実行結果においても処理後の値はInt型になっていることがわかる。再起関数とネストされた関数そのまんま再起関数とネストされた関数がトピックとして記載されている。ここで重要なのは以下だろう。braces){}でコードのスコープを定義できる一つの関数のスコープ内では他の関数や再起関数の呼び出しが可能とあるスコープ内で定義された関数はそのスコープ内でのみアクセス可能となる再起関数については、他のプログラミング言語と同様の扱い。関数内での別関数定義はpythonとかでもサポートされているがそれと同様の扱いと考えて良さそう。以下がBootcamp内のサンプル。asciiTriangleまあ、割と見たまんまのサンプルで、asciiTriangle内で定義されたprintRowという1行を出力する関数を使ってascii文字Xの三角形を出力するというもの。関数内でasciiTriangle関数を再帰的に呼び出しており、この項の2つの要素を1つのサンプルで確認することが出来る。基本的なことのみではあるが、ここまででもそれなりのボリュームになったので、今日はここまで。日を改めて残りの内容を確認していく。技書博2にChisel本を出してきました月別アーカイブはてなブログをはじめよう!diningyo-kpuku-jougekiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。