Scala逆引き解説
カテゴリ別記事一覧
はじめに
次世代型プログラミング言語Scala入門:未経験者に必須の知識総まとめ!
【2020春】Scalaで転職する方法!Scala求人の動向は?未経験者・Java経験者はどうすべき?
Scalaについて非エンジニア向けに解説します!
Scalaを学ぶのに役立つ書籍を紹介します!
Scala 3(Dotty)特集
【2019年12月】Scala 3(Dotty)開発の進捗と2.13からの移行についての最新情報
次世代Scala「Dotty」 3つのねらい・7つの新しさをご紹介
「交差型」のご紹介:Scala 3の新しい型表現(1)
「合併型」のご紹介:Scala 3の新しい型表現(2)
「型ラムダ」のご紹介:Scala 3の新しい型表現(3)
「コンテキスト関数」のご紹介:Scala 3の新しい型表現(4)
「トレイトパラメータ」のご紹介:Scala 3のパワーアップした表現力(1)
「可変長引数パターン」のご紹介:Scala 3のパワーアップした表現力(2)
Scala 3に用意された移行オプションの使い方まとめ
トップレベル定義の導入とパッケージオブジェクトの廃止について:Scala 3のパワーアップした表現力(3)
newキーワードを不要にする「クリエイターアプリケーション」とは?:Scala 3のパワーアップした表現力(4)
タプルと関数が限界突破!22制限の撤廃について:Scala 3のパワーアップした表現力(4)
Scala 3.0.0-M1がリリースされます
Scala 3で廃止予定の機能
DelayedInitの解説:Scala 3で廃止予定の機能(1)
XMLリテラルの解説:Scala 3で廃止予定の機能(2)
シンボルリテラルの解説:Scala 3で廃止予定の機能(3)
do-while文の解説:Scala 3で廃止予定の機能(4)
Scala 2のマクロ:Scala 3で廃止予定の機能(5)
forSomeによる存在型:Scala 3で廃止予定の機能(6)
型射影:Scala 3で廃止予定の機能(7)
手続き型構文:Scala 3で廃止予定の機能(8)
先行初期化:Scala 3で廃止予定の機能(9)
クラスシャドウイング:Scala 3で廃止予定の機能(10)
大域脱出:Scala 3で廃止予定の機能(11)
[this]修飾子:Scala 3で廃止予定の機能(12)
弱適合:Scala 3で廃止予定の機能(13)
自動適用:Scala 3で廃止予定の機能(14)
Scala 3で変更・廃止予定の機能と移行作業についてのまとめ
ニュース・その他のトピック
【2020】Scalaを使用したAndroidアプリ開発についての最新情報
小学校における「プログラミング教育」の意図は?
アジア最大のScalaカンファレンス「ScalaMatsuri 2020」の魅力とは?
Scala 2.12.12がリリース!コンパイラやコレクションの性能向上に注目!
環境構築
開発環境を構築したい
"Hello! World" をしたい
実行環境を構築したい
WindowsにScalaの環境構築をする方法
macOSにScalaの環境構築をする方法
UbuntuにScalaの環境構築をする方法
CentOSにScalaの環境構築をする方法
SDKMANをインストールする方法
Scastieを使ってお手軽にScalaに入門する
sbt
macOSにsbtをインストールする方法
Windowsにsbtをインストールする方法
sbt ConsoleでHello! Worldをしてみる方法
Ubuntu(Debian系Linux)にsbtをインストールする方法
CentOS(Red Hat系Linux)にsbtをインストールする方法
sbtでScala 3(Dotty)を使用する
基礎知識・基本文法
標準出力に文字列を出力したい
ループ処理をする方法は?mapメソッドの使い方
Scalaのfor式の使い方を解説
Javaの例外をtry-catchで処理するには?
Scalaの式とブロックについて解説
キーワードval、varで変数を宣言する方法を解説
match式で分岐処理をする方法
クラスを定義する方法
if式で条件分岐する方法
Scalaの演算子について解説
コメントを記述する方法
リテラルについて解説
基本の型について解説
副作用のないコードのメリットとは? - 副作用について解説 -
中級文法
暗黙の型変換(implicit conversion)を理解する
列挙型(enum)の使い方
case objectについて
case classについて
case classで自動生成されるコードについて解説
メソッドと関数について解説
カリー化と部分適用について解説
トレイトと抽象クラスについて解説
文字列処理
文字列の長さを取得する方法:lengthとcodePointCountの使い分け
【getBytes&size】文字列のバイト長を取得する方法
containsメソッドでStringに特定の文字列が含まれるか調べる方法
文字列を連結するには?+演算子やString interpolationの使い方
文字列を分割する方法(split・splitAt・linesIterator・linesWithSeparatorsメソッド)
replaceメソッドなど、文字列を置換する方法を紹介
文字列を数値に変換するには?to○○メソッドと注意点について
substringでStringを切り取り、部分文字列を抽出する方法
StringOpsとWrappedStringの違いは?
文字列の先頭や末尾を、取得したり切り落としたりする方法
文字列を逆順にする方法
文字列をURLエンコード・デコードする方法
この文字の位置はどこ?文字列のインデックスを取得する方法
文字列が特定の文字列で始まるか・終わるかを調べる方法
文字列をエスケープしたり復元したりする方法(Apache Commons Text)
文字列の文字コード(文字セット)を変換する方法
数値を文字列に変換する方法
文字列をバイト列に、またはバイト列を文字列に変換する方法
trimメソッドで文字列の前後の空白を除去する
特定の文字の文字コード(コード・ポイント)を取得する
文字列が正規表現に合致するか調べる方法
文字列の大文字へ・小文字へ変換する方法
stripメソッドで文字列の前後の全角空白を除去する
JavaとScalaのString/StringBuilder/StringBuffer使い分け事情
文字列が一致するか比較する方法/大文字・小文字を区別せずに比較する方法
文字列を辞書的に比較する方法/大文字・小文字を区別せずに比較する方法
コレクション
Listの使い方
List
List内の重複した要素を削除する方法
Listの和・差・積をとるには?diff、intersect、concatの使い方
Listへ要素を追加する方法
Listのfilter、filterNotメソッドの使い方
ListのgroupBy、groupMap、groupMapReduceメソッドの使い方
Map
Mapクラスのmapメソッドの使い方
+演算子でMapに要素を追加・上書きする方法
containsやexistsの使い方は?Mapにキーや値、要素が含まれるか調べる方法
Mapの値を取得するには?
Mapの要素を処理したい!foreach、map、tapEach、foreachElementの使い分け
Mapのfilter、filterNotメソッドの使い方
Mapのfindで条件に合う要素を一つ取得する方法
collect/collectFirstの使い方:Mapの要素を抽出し、それぞれを処理した結果を返すには
Mapの要素の数を取得する方法、要素の数を比較する方法は?
Mapでイテレータを利用する方法
その他のユーティリティ
【2.13から新登場】tap/pipeでメソッドチェーンをする方法
超有能オブジェクトPredefの知られざる機能を明らかにします
標準出力するためのprintとprintlnの違いについて
Java開発経験者のためのScala入門
Java開発経験者のための最速Scala入門:覚えるのはこれだけでOK!
Javaに対するScalaの優位な点について
JavaのAPIを使えばOK、学習を後回しにしても良い機能について
JavaとScalaのHello! Worldを比較してみる
サイト内検索
Scalaを使ってみたいけれど、複雑そう、難しそう…と使うのを躊躇している方も多いと思います。
そこで、当サイトではScalaについて無理なく学べるよう、Javaなどの周辺技術との関わりも含めてやさしく平易に解説していきます。
動作環境
Scalaのバージョンは 3.3.4 に対応しています。Javaのバージョンは17です。
編集責任者
堀内紀彰 (@NoriakiHoriuchi)
合同会社ミルクソフトの代表です。Scalaをメインに業務アプリケーションを開発しています。Scalaにはだいぶお世話になったので、さらなる普及のために一肌脱ごうと思っています。