社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

(自分用) Scala Quiz 1

Q1. リストの定義方法は ?

val list = ???

Q2. 文字列が特定の文字で開始されているかを確認するには ?

val text = "hoge"
text.???("h")

Q3. 数値から文字列にどのようにキャストする ?

val number = 7
val text = number.???

Q4. scalajava.util.List を foreach にするには ?

Q5. 以下の出力結果は ? (true or false)

val textA = new String("テキスト")
val textB = new String("テキスト")

println(textA == textB)
println(textA.equals(textB))

Q6. Javaでは全てのクラスが Object クラスから派生している。では Scala では?

Q7.
以下のように、ダブルクオーテーション記号を3つつなげた"""で囲んだ文字列を何と呼ぶか?

scala> val greet = """Hello.
     | My name is Tom.
     | I like baseball.
     | """

Q8.
以下の文字列からURL部分を空白に置換するには ?

val greet2 = """Hello.
My name is Tom.
https://xxx.co/CoRLSLA
I like baseball.
"""

Q9.
以下に当てはまるタプルを宣言してください。

val sample: Tuple2[String, Int] = ???

Q10.
以下のエラーの意味は?

error: return outside method definition

(解答例)
===================================
A1.

val list = List(1, 2, 3)

A2.

val text = "hoge"
text.startsWith("h")

A3.

val number = 7
val text = number.toString

A4.
以下のライブラリをインポートすることで、暗黙の型変換が行われる。

import scala.collection.convert.WrapAsScala._

A5.
どちらも true

println(textA == textB) // true
println(textA.equals(textB)) // true

A6.
scala.Any クラス

A7.
生文字リテラルエスケープ文字を持たず、複数行の文字列を記述できる。

A8.

greet2.replaceAll("http[s].*","")

A9.

val sample: Tuple2[String, Int] = ("hoge", 7)

A10.
リターン式 return e は名前付きのエンクロージングメソッドや関数の中でしか使えないという言語仕様。
例えば以下のような定義を行うと、同エラーが発生する。

val hoge = (x: Int) => { return x }