<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.nekotype.com/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.nekotype.com/feed.php">
        <title>猫型iPS細胞研究所 kotlin</title>
        <description></description>
        <link>https://wiki.nekotype.com/</link>
        <image rdf:resource="https://wiki.nekotype.com/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-30T22:36:23+0900</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC?rev=1576315416&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3?rev=1567257795&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/%E3%83%A9%E3%83%A0%E3%83%80%E5%BC%8F?rev=1577597085&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/%E5%85%B1%E5%A4%89_%E5%8F%8D%E5%A4%89?rev=1574699301&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/%E6%A8%99%E6%BA%96%E9%96%A2%E6%95%B0%E3%83%BB%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E9%96%A2%E6%95%B0?rev=1576168424&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/activity%E9%96%93%E3%81%A7data_class%E3%82%92%E6%B8%A1%E3%81%99?rev=1573900503&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/asynctask%E3%81%A8coroutine?rev=1570867431&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/coroutines?rev=1578953018&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/create-react-kotlin-app?rev=1577692506&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/dsl?rev=1576294109&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/enum%E3%81%A8sealed?rev=1575933482&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/intellij_idea?rev=1568299162&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/junit?rev=1567979908&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/kotlin%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB?rev=1572773316&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/kotlin%E3%82%B3%E3%83%BC%E3%83%89%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB?rev=1567321603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/kotlin%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?rev=1575933003&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/ktor?rev=1576308332&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/random?rev=1573970338&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/serialize?rev=1574170396&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.nekotype.com/kotlin/shuffle%E3%81%A8shuffled?rev=1575899461&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.nekotype.com/lib/tpl/dokuwiki/images/favicon.ico">
        <title>猫型iPS細胞研究所</title>
        <link>https://wiki.nekotype.com/</link>
        <url>https://wiki.nekotype.com/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.nekotype.com/kotlin/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC?rev=1576315416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-14T18:23:36+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>クロージャー</title>
        <link>https://wiki.nekotype.com/kotlin/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC?rev=1576315416&amp;do=diff</link>
        <description>クロージャー

関数内で定義されたラムダやローカル関数は、外側の関数のローカル変数にアクセスできる。

クロージャーにより、外部からはアクセスできない
ローカルメソッドを作成することができる。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3?rev=1567257795&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-31T22:23:15+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kotlin コマンドライン</title>
        <link>https://wiki.nekotype.com/kotlin/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3?rev=1567257795&amp;do=diff</link>
        <description>kotlin コマンドライン

バージョンの確認


&gt; C:\&gt;kotlin -version
&gt; Kotlin version 1.3.50-release-112 (JRE 1.8.0_201-b09)


コンパイル


&gt; kotlinc {ソースファイル名} -include-runtime -d {JARファイル名}
 ↓
&gt; kotlinc FizzBuzz.kt -include-runtime -d FizzBuzz.jar</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/%E3%83%A9%E3%83%A0%E3%83%80%E5%BC%8F?rev=1577597085&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-29T14:24:45+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ラムダ式</title>
        <link>https://wiki.nekotype.com/kotlin/%E3%83%A9%E3%83%A0%E3%83%80%E5%BC%8F?rev=1577597085&amp;do=diff</link>
        <description>ラムダ式

ラムダ式とは、無名関数の書き方の一つ。
無名関数とは名前付けされずに定義された関数のこと。

無名関数だとNewしてOverrideするところを、ラムダ式だと簡潔にかける。


// Java無名関数
public class Main {

    public static void main(String[] args) {
        Runnable r = new Runnable(){
            @Override
            public void run() {
                System.out.println(&quot;Hello lambda.&quot;);
            }
        };
        r.run(); // Hello lambda.
    }
}…</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/%E5%85%B1%E5%A4%89_%E5%8F%8D%E5%A4%89?rev=1574699301&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-26T01:28:21+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>共変_反変</title>
        <link>https://wiki.nekotype.com/kotlin/%E5%85%B1%E5%A4%89_%E5%8F%8D%E5%A4%89?rev=1574699301&amp;do=diff</link>
        <description>共変_反変

Kotlinの場合
不変(Array)...同じ型でなければならない。(そもそもlistは不変ではない)

共変(out)...上位の型に下位の型を入れることが出来る。
　設定といっても初期値(val)として。
　取り出す(参照)ときには上位の型として取り出す。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/%E6%A8%99%E6%BA%96%E9%96%A2%E6%95%B0%E3%83%BB%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E9%96%A2%E6%95%B0?rev=1576168424&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-13T01:33:44+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>標準関数・スコープ関数</title>
        <link>https://wiki.nekotype.com/kotlin/%E6%A8%99%E6%BA%96%E9%96%A2%E6%95%B0%E3%83%BB%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E9%96%A2%E6%95%B0?rev=1576168424&amp;do=diff</link>
        <description>標準関数・スコープ関数

apply

レシーバーに対して一連の関数を呼びだすことでレシーバーに対する設定ができる。


// 定義
public inline fun &lt;T&gt; T.apply(block: T.() -&gt; Unit): T {
    contract {
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    }
    block()
    return this
}</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/activity%E9%96%93%E3%81%A7data_class%E3%82%92%E6%B8%A1%E3%81%99?rev=1573900503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-16T19:35:03+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Activity間でdata_classを渡す</title>
        <link>https://wiki.nekotype.com/kotlin/activity%E9%96%93%E3%81%A7data_class%E3%82%92%E6%B8%A1%E3%81%99?rev=1573900503&amp;do=diff</link>
        <description>Activity間でdata_classを渡す

Serializableをimplementすればいいが、エラーがでる。

Cannot access 'Serializable':it is internal in 'kotlin.io'

をインポートすればいい。


import java.io.Serializable
...
data class RowData(var id:Int
                    ,var type:Int
　　　　　　　　　　　　...
                    ):Serializable</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/asynctask%E3%81%A8coroutine?rev=1570867431&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-10-12T17:03:51+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>AsyncTaskとCoroutine</title>
        <link>https://wiki.nekotype.com/kotlin/asynctask%E3%81%A8coroutine?rev=1570867431&amp;do=diff</link>
        <description>AsyncTaskとCoroutine

AsyncTaskと同等の機能をKotlinのCoroutine（コルーチン）で実装

AsyncTask


import android.os.AsyncTask
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Log.i(&quot;async&quot;,&quot;onCreate: ${Thread.currentTh…</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/coroutines?rev=1578953018&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-14T07:03:38+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>coroutines</title>
        <link>https://wiki.nekotype.com/kotlin/coroutines?rev=1578953018&amp;do=diff</link>
        <description>coroutines

Your first coroutine with Kotlin

pljp/kotlinx.coroutines

coroutineの使い方


dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    ・・・
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    implementation &quot;org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2&quot; // step1

}</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/create-react-kotlin-app?rev=1577692506&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-30T16:55:06+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>create-react-kotlin-app</title>
        <link>https://wiki.nekotype.com/kotlin/create-react-kotlin-app?rev=1577692506&amp;do=diff</link>
        <description>create-react-kotlin-app

JetBrains/create-react-kotlin-app


&gt;npx create-react-kotlin-app react-kotlin

&gt;cd react-kotlin

&gt;npm start</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/dsl?rev=1576294109&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-14T12:28:29+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DSL</title>
        <link>https://wiki.nekotype.com/kotlin/dsl?rev=1576294109&amp;do=diff</link>
        <description>DSL

AndroidのGradleでKotlin DSLを使う

JetBrains/Exposed

DSLとは

AndroidのGradleでKotlin DSLを使うからの抜粋

DSL は Domain Specific Language(ドメイン固有言語) の略。
micro-languages や little languages とも呼ばれ、特定の領域に特化した設計がなされたプログラミング言語のことを指す。
有名どころでは XML や SQL、正規表現 などがあります。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/enum%E3%81%A8sealed?rev=1575933482&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-10T08:18:02+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>enumとsealed</title>
        <link>https://wiki.nekotype.com/kotlin/enum%E3%81%A8sealed?rev=1575933482&amp;do=diff</link>
        <description>enumとsealed

enumクラス

GEARクラスのLOW,MIDDLE,HIというインスタンスということを宣言している。

enumの基本


enum class GEAR(){
    LOW,
    MIDDLE,
    HI
}
fun main(){
    println(GEAR.HI)
}
 ↓
HI


enumのコンストラクタ</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/intellij_idea?rev=1568299162&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-12T23:39:22+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>IntelliJ IDEA</title>
        <link>https://wiki.nekotype.com/kotlin/intellij_idea?rev=1568299162&amp;do=diff</link>
        <description>IntelliJ IDEA

インストール

Download IntelliJ IDEA

１．CommunityのDownloadをクリックすればインストーラーがダウンロードされる。

２．ウィザードに従いインストールする。

日本語化

JetBrains 製品の日本語化マニュアル

１．方法1：Pleiades インストーラーで簡単日本語化 (おすすめ)から、自分の環境にあった「Pleiades・プラグイン」をダウンロードする。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/junit?rev=1567979908&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-09T06:58:28+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>JUnit</title>
        <link>https://wiki.nekotype.com/kotlin/junit?rev=1567979908&amp;do=diff</link>
        <description>JUnit

【JUnit】IntelliJ IDEAでJUnit Testを行う</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/kotlin%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB?rev=1572773316&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-03T18:28:36+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>kotlinのインストール</title>
        <link>https://wiki.nekotype.com/kotlin/kotlin%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB?rev=1572773316&amp;do=diff</link>
        <description>kotlinのインストール

Working with the Command Line Compilerの、
Downloading the compilerにあるGitHub ReleasesからGitHubへ行く。

リンク先のGithubの最下部よりzipをダウンロードする。
(kotlin-compiler-1.3.50.zipでよい)


zipを解凍して、「C:\Program Files\kotlinc」に置く。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/kotlin%E3%82%B3%E3%83%BC%E3%83%89%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB?rev=1567321603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-01T16:06:43+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>コードサンプル</title>
        <link>https://wiki.nekotype.com/kotlin/kotlin%E3%82%B3%E3%83%BC%E3%83%89%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB?rev=1567321603&amp;do=diff</link>
        <description>コードサンプル

Hello World!


fun main(){
    println(&quot;hello world&quot;)
}
 　↓　
hello world


クリックイベント


class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val but = findViewById(R.id.button) as Button
        but.setOnClickListener {
            Toast.makeText(this, &quot;テストメッセージです&quot;, Toast.LENGTH_SHORT).show()
        }
    }
}…</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/kotlin%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?rev=1575933003&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-10T08:10:03+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Kotlinプログラミング</title>
        <link>https://wiki.nekotype.com/kotlin/kotlin%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0?rev=1575933003&amp;do=diff</link>
        <description>Kotlinプログラミング

 Kotlinプログラミング

4.10 Nothing型

TODO():Nothingなので、

	*  関数本体でTODO()を使うと何も返さないことを保証する。それでコンパイラはチェックをしない。関数の実装をしなくても、作業ができる。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/ktor?rev=1576308332&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-14T16:25:32+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ktor</title>
        <link>https://wiki.nekotype.com/kotlin/ktor?rev=1576308332&amp;do=diff</link>
        <description>ktor

Kotlinを開発したJetBrains社が提供する、kotlinのwebフレームワーク。
“Easy to use, fun and asynchronous.”
とても軽量。

Ktor











同期化に時間がかかった</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/random?rev=1573970338&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-17T14:58:58+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Random</title>
        <link>https://wiki.nekotype.com/kotlin/random?rev=1573970338&amp;do=diff</link>
        <description>Random


import kotlin.random.Random

println(Random.nextInt(0, 3))　// 0:from 3:until
 ↓
0 ~ 2</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/serialize?rev=1574170396&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-11-19T22:33:16+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Serialize</title>
        <link>https://wiki.nekotype.com/kotlin/serialize?rev=1574170396&amp;do=diff</link>
        <description>Serialize

オブジェクトをシリアライズする


import java.io.Serializable

data class RowData(var id:Int
                    ,var type:Int
                    ,var score:Int):Serializable


配列をシリアライズする

kotlinx.serializationを使用する必要がある。</description>
    </item>
    <item rdf:about="https://wiki.nekotype.com/kotlin/shuffle%E3%81%A8shuffled?rev=1575899461&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-09T22:51:01+0900</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>shuffleとshuffled</title>
        <link>https://wiki.nekotype.com/kotlin/shuffle%E3%81%A8shuffled?rev=1575899461&amp;do=diff</link>
        <description>shuffleとshuffled


// shuffleはMutableListの拡張関数。対象のMutableListをシャッフルするだけ。
public actual inline fun &lt;T&gt; MutableList&lt;T&gt;.shuffle() {
    java.util.Collections.shuffle(this)
}

// shuffledはIterableの拡張関数。同じ型を返すので、そのまま関数を続けることができる。
@SinceKotlin(&quot;1.2&quot;)
public actual fun &lt;T&gt; Iterable&lt;T&gt;.shuffled(): List&lt;T&gt; = toMutableList().apply { shuffle() }
　↓
list.shuffled().first()</description>
    </item>
</rdf:RDF>
