startalks

スマホアプリ(Android/iOS)、IoT、AI、データサイエンス

【Kotlin】5回目 言語基礎(フローコントロール)

目次

①if文

②when文

③forループ

④whileループ

①if文

// Traditional usage 
var max = a 
if (a < b) max = b

// With else 
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}
 
// 式として利用できる。
val max = if (a > b) a else b

②when文

JavaのSwitch-case文と同じ様な使い方。

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> { // Note the block
        print("x is neither 1 nor 2")
    }
}

③forループ

式として使える。

for (item in collection) print(item)

通常はブロックで書く。

for (item: Int in ints) {
    // ...
}

④whileループ

Javaと一緒。

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!

【Kotlin】4回目 言語基礎(パッケージ)

目次

①デフォルトインポート

②インポート

①デフォルトインポート

以下パッケージはKotlinでデフォルトでインポートされる。
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (since 1.1)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*

②インポート

Javaと同じ。

    import foo.Bar // Bar is now accessible without qualification
    import foo.* // everything in 'foo' becomes accessible
    import bar.Bar as bBar // bBar stands for 'bar.Bar'

【Kotlin】3回目 言語基礎(データ型)

目次
①number
②character
③boolean
④String
⑤Array

①数字型(number)
以下数字型がサポートされる。
・Double 64
・Float 32
・Long 64
・Int 32
・Short 16
・Byte 8

アンダースコアで可読性を向上させることができる。

val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010

②文字型(char)
シングルクォーテーションで囲む。

③真偽値(boolean)
trueまたはfalseの2つの値がある。

④文字列(String)
・改行を含む文字列はトリプルクォーテーション(""")で定義できる。
 例)

val text = """
    for (c in "foo")
        print(c)
"""

⑤配列(Array)
Arrayクラスを使って配列を扱う。

【Kotlin】2回目 言語基礎(基本文法)

目次
①定義
②特徴
③基本文法
④参考

①定義

Kotlin(コトリン)は、ジェットブレインズ社が開発した、静的型付けのオブジェクト指向プログラミング言語

②特徴

 ・簡潔
  POJOクラスを一行で書いちゃう。
  例)

  data class Customer(val name: String, val email: String, val company: String)

 ・Null安全
  NullPointerExceptionを排除すべく、変数にタイプアノテーションを付けるか、初期化する必要がある。
  例)

  var output: String
  output = null   // Compilation error:This variable must either have a type annotation or be initialized

 ・操作可換性ある
  JavaまたはJavaScriptで書いたコードを実行可能。
  例)Java

  import io.reactivex.Flowable
  import io.reactivex.schedulers.Schedulers
  
  Flowable
      .fromCallable {
          Thread.sleep(1000) //  imitate expensive computation
          "Done"
      }
      .subscribeOn(Schedulers.io())
      .observeOn(Schedulers.single())
      .subscribe(::println, Throwable::printStackTrace)

  例)JavaScript

  import kotlin.browser.window
  
  fun onLoad() {
      window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
  }

③基本文法

・パッケージ

 package my.demo
 import java.util.*

・関数

 //Int型パラメータ、Int型戻り値
 fun sum(a: Int, b: Int): Int {
    return a + b
 }
 //Unit型戻り値(voidと同じ)。省略してもOK。
 fun sum(a: Int, b: Int): Unit {
    println("sum of $a and $b is ${a + b}")
 }

・変数

 read-onlyのローカル変数。

 val a: Int = 1  // immediate assignment
 val b = 2   // `Int` type is inferred
 val c: Int  // Type required when no initializer is provided
 c = 3       // deferred assignment

 ミュータブルな変数。

 var x = 5 // `Int` type is inferred
 x += 1

・コメント(Javaと一緒)

・String templates

 var a = 1
 // simple name in template:
 val s1 = "a is $a" 

 a = 2
 // arbitrary expression in template:
 val s2 = "${s1.replace("is", "was")}, but now is $a"

・条件式

・ループ(Javaと一緒)

・レンジ

 val x = 10
 val y = 9
 if (x in 1..y+1) {
     println("fits in range")
 }

・コレクション(Javaと一緒)

・クラス

 val rectangle = Rectangle(5.0, 2.0) //'new'キーワードは不要
 val triangle = Triangle(3.0, 4.0, 5.0)

④参考

・コーディング規約
Coding Conventions - Kotlin Programming Language

まとめ
次回はデータ型について見ていきます~

【Kotlin】1回目 開発環境構築

目次

①Android Studio3

②プロジェクト作成

Hello World!実行

まとめ

①Android Studio3

Android Studio3.0以降からKotlinをサポートできるようになっているので、

今回はAndroid Studioを使うようにしよう。

Android Studioダウンロード

developer.android.com

※インストール手順は割愛。

 

②プロジェクト作成

f:id:startalks:20181007224230p:plain f:id:startalks:20181007224215p:plain

▼最小API(minimun SDK)レベル選択時にカバーするデバイスのパーセンテージを出してくれるから便利!

f:id:startalks:20181007225240p:plain

f:id:startalks:20181007224322p:plain

f:id:startalks:20181007224336p:plain

f:id:startalks:20181007224345p:plain

f:id:startalks:20181007224357p:plain

f:id:startalks:20181007224410p:plain

f:id:startalks:20181007224421p:plain

f:id:startalks:20181007224429p:plain

▼初回ビルドは少し時間がかかった。

f:id:startalks:20181007224437p:plain

 

hello world

▼ビルド後にMainActivity.tkが生成される。

f:id:startalks:20181007224528p:plain

▼activity_main.xml

f:id:startalks:20181007230441p:plain

▼「run」ボタン押下して、起動してみる。今回は実機を選んでおく。

f:id:startalks:20181007230420p:plain

▼実機にてKotlinのHello World!が表示された。

f:id:startalks:20181007230551p:plain

 

まとめ

Android Studioを使って

Kotlinで「Hello World!」を表示させることが簡単にできた。

次回はMainActivity.tkの中身を見ていきたいと思う。