[Elixir][Swift]ElixirやSwiftのprotocolなどの話

たまたま見つけて。

ElixirはClojureに影響されているのですね。protocol周辺の使い道。

パッと、 defimpl の対象となるタイプを思い出せなかったので以下にURLを一応。

http://elixir-lang.org/docs/stable/elixir/Kernel.html#defprotocol/2

こんな感じ。 defimpl第一引数のタイプ によって、どのタイプに対する実装かを示しています。

defprotocol JSONA do
  def to_json(data, precision)
end

defprotocol JSONB do
  def to_json(data, scale)
end

defimpl JSONA, for: BitString do
  def to_json(data, _precision) do
    "hello"
  end
end

defimpl JSONA, for: Integer do
  def to_json(data, _precision) do
    Integer.to_string(data)
  end
end

JSONA.to_json "abc", 10
|> IO.puts

Swiftは、記事のものは古いので省略。も少しあとで。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中