Skip to content

テストページ

これは画像を含むブロックです(Compose Multiplatformの基本チュートリアルから引用)。

ステップ1 KotlinでSpring Bootプロジェクトを作成する
ステップ2 Spring Bootプロジェクトにデータクラスを追加する
ステップ3 Spring Bootプロジェクトにデータベースサポートを追加する
ステップ4 データベースアクセスにSpring Data CrudRepositoryを使用する

同期タブ

kotlin
plugins {
    kotlin("kapt") version "1.9.23"
}
groovy
plugins {
    id "org.jetbrains.kotlin.kapt" version "1.9.23"
}
kotlin
plugins {
    kotlin("plugin.noarg") version "1.9.23"
}
groovy
plugins {
    id "org.jetbrains.kotlin.plugin.noarg" version "1.9.23"
}

セクション

折りたたみセクション

ここにテキストとコードブロックがあります:

kotlin
plugins {
    kotlin("plugin.noarg") version "1.9.23"
}

コードブロック

単一のコードブロック:

kotlin
    import java.util.*

@Service
class MessageService(val db: MessageRepository) {
    fun findMessages(): List<Message> = db.findAll().toList()

    fun findMessageById(id: String): List<Message> = db.findById(id).toList()

    fun save(message: Message) {
        db.save(message)
    }

    fun <T : Any> Optional<out T>.toList(): List<T> =
        if (isPresent) listOf(get()) else emptyList()
}

展開可能なコードブロック

kotlin
package com.example.demo

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

@SpringBootApplication
class DemoApplication

fun main(args: Array<String>) {
    runApplication<DemoApplication>(*args)
}

@RestController
class MessageController {
    @GetMapping("/")
    fun index(@RequestParam("name") name: String) = "Hello, $name!"
}

実行可能なコードブロック

kotlin
data class User(val name: String, val id: Int)

fun main() {
    val user = User("Alex", 1)
    
    // 出力が読みやすくなるように、toString()関数を自動的に使用します
    println(user)            
    // User(name=Alex, id=1)
}

テーブル

Markdownテーブル

プリミティブ型の配列Javaでの対応
BooleanArrayboolean[]
ByteArraybyte[]
CharArraychar[]
DoubleArraydouble[]
FloatArrayfloat[]
IntArrayint[]
LongArraylong[]
ShortArrayshort[]

XMLテーブル

最終更新日2023年12月
次回の更新2024年6月

コードブロックを含むXMLテーブル

シンプルなテーブル:

以前現在
kotlin
kotlin {
    targets {
        configure(['windows',
            'linux']) {
        }
    }
}
kotlin
kotlin {
    targets {
        configure([findByName('windows'),
            findByName('linux')]) {
        }
    }
}

より複雑なテーブル:

以前現在
jvmMainコンパイルの依存関係
kotlin
jvm<Scope>
kotlin
jvmCompilation<Scope>
kotlin
dependencies {
    add("jvmImplementation",
        "foo.bar.baz:1.2.3")
}
kotlin
dependencies {
    add("jvmCompilationImplementation",
        "foo.bar.baz:1.2.3")
}
jvmMainソースセットの依存関係
kotlin
jvmMain<Scope>
jvmTestコンパイルの依存関係
kotlin
jvmTest<Scope>
kotlin
jvmTestCompilation<Scope>
jvmTestソースセットの依存関係
kotlin
jvmTest<Scope>

リスト

番号付きリスト

  1. 1つ目

  2. 2つ目

  3. 3つ目

    1. 3の1
    2. 3の2
    3. 3の3
      1. 3の1の1
  4. 内部にコードブロックがある場合:

    kotlin
    jvmTest<Scope>

番号なしリスト

  • 最初の項目

  • 2番目の項目

  • 3番目の項目

    • もう一つ
    • さらにもう一つ
      • おっと、さらにもう一つ
  • 内部にコードブロックがある場合:

    kotlin
    jvmTest<Scope>

定義リスト

折りたたみアイテム #1

CrudRepositoryインターフェースのfindById()関数の戻り値の型は、Optionalクラスのインスタンスです。しかし、一貫性を保つために、単一のメッセージを含むListを返すのが便利です。そのためには、Optionalの値が存在する場合はその値をアンラップし、値を含むリストを返す必要があります。これは、Optional型に対する拡張関数(extension function)として実装できます。

コード内のOptional<out T>.toList()において、.toList()Optionalの拡張関数です。拡張関数を使用すると、任意のクラスに新しい関数を追加できます。これは、ライブラリクラスの機能を拡張したい場合に特に便利です。

折りたたみアイテム #2

この関数は、新しいオブジェクトがデータベース内にIDを持っていないことを前提として動作します。したがって、挿入の際にはIDはnullである必要があります。

IDがnullでない場合、CrudRepositoryはそのオブジェクトがすでにデータベースに存在するとみなし、挿入(insert)操作ではなく更新(update)操作として扱います。挿入操作の後、idはデータストアによって生成され、Messageインスタンスに再度割り当てられます。そのため、idプロパティはvarキーワードを使用して宣言する必要があります。

テキスト要素

変数

  • 変数の使用:最新のKotlinバージョンは 2.4.10 です

埋め込み要素

YouTubeの動画

画像

標準(Markdown):

テストを作成する

標準(XML):

マルチプラットフォームWebウィザード

インライン:

YouTrack

ズーム可能:

クラス図

ボタンスタイル:

プロジェクトを作成する

ノート

警告:

kaptコンパイラプラグインにおけるK2のサポートは実験的(Experimental)です。 オプトインが必要です(詳細は以下を参照)。評価目的でのみ使用してください。

注記:

Kotlin/Nativeに同梱されているネイティブプラットフォームライブラリ(Foundation、UIKit、POSIXなど)については、一部のAPIのみ@ExperimentalForeignApiでのオプトインが必要です。その場合、オプトインを要求する警告が表示されます。

ヒント:

Kotlin/Nativeに同梱されているネイティブプラットフォームライブラリ(Foundation、UIKit、POSIXなど)については、一部のAPIのみ@ExperimentalForeignApiでのオプトインが必要です。その場合、オプトインを要求する警告が表示されます。