演算子はオーバーロード関数には使えないことに注意。将来的には、関数の特定のオーバーロードが選択可能なようにパラメータ型を指定する書式を提供することを計画している。次の関数を考えてみる。}}これは渡された2つの関数を合成したものを返す。これを呼び出し可能な参照に適用できる。型のプロパティオブジェクトと等価である1。プロパティでプロパティ名を取得したりできる。詳細はKPropertyクラスのドキュメントを参照。プロパティ参照は引数のない関数が期待される場所で使うことができる。表示するクラスメンバのプロパティにアクセスするには修飾する。"1"を表示する}拡張プロパティには以下のようにする。"c"を表示する}Javaリフレクションとの相互運用性Javaプラットフォームでは、標準ライブラリがリフレクションクラスの拡張を用意している。その拡張がJavaリフレクションオブジェクトとの間のマッピングを提供する。バッキングフィールドやKotlinプロパティのgetterとして提供されるJavaメソッドを見つけるために、こんな風に書ける。拡張プロパティを使う。o.javaClass.kotlinコンストラクタ参照コンストラクタもメソッドやプロパティと同じように参照できる。コンストラクタと引数が同じで適切な型の戻り値を持つ関数型オブジェクトが期待される場所なら、どこでも利用できる。演算子の後にクラス名を加えることで参照できる。返す関数」を引数として期待する、次の関数を考えてみよう。引数なしコンストラクタを、こんな風に簡単に呼び出せる。function(::Foo)型安全なビルダービルダーの概念はGroovyコミュニティではかなりポピュラー。ビルダーを用いると準宣言的にデータを定義できる。ビルダーはXML生成、UIコンポーネントのレイアウト、3Dシーンの描写などで便利。多くの利用ケースで、Kotlinは型安全なビルダーを提供できる。型安全性であることでGroovyでの動的型付け実装よりも魅力的なものになる。残りの事例では、Kotlinは動的片付けビルダーをサポートする。次のコードを考えてみよう。{+"このフォーマットはXMLマークアップの代替として利用できる。+"プロジェクトを参照。}これは完全に正当なKotlinコードである。ここで(変更してブラウザで実行して)このコードをオンラインで試すことができる。やって動作しているかKotlinでの型安全なビルダーの実装メカニズムを順に見ていこう。最初に組み立てたいモデルを定義する。ここの例ではHTMLタグのモデルが必要だ。これは一連のクラスを用意すれば済む。